如下描述的問題,沒有指明是linux部署的,都是在
windows
開發環境上部署驗證發現的。
問題描述:
配置客戶端使用配置中心是需要下面兩步
1)在pom檔案加
spring-cloud-starter-config依賴
2)在配置檔案中加spring.cloud.config配置語句。
把第二步的配置語句去掉,不去掉第一步的依賴,配置客戶端微服務啟動還是會使用配置中心,而且是使用預設的localhost:8888去連線配置中心。如果本地木有啟動
8888
埠的配置中心服務,那該微服務啟動就會報錯。
解決方法:
如果不使用配置中心的服務,必須將兩步配置同時刪除。
ps:
springcloud中好多擴充套件應用也有類似的問題,比如不想使用服務發現,那就需要把服務發現的所有配置都移除,否則也是有問題的。
問題描述:
使用${}動態獲取配置檔案中的字段,如
如果啟動了多個該應用的例項物件,且都註冊到了註冊中心,就會引起${}木有真正獲取到資料,或者混亂。
在測試自定義負載均衡的時候,使用這種方式配置ribbonclient的
name
,發現自定義負載策略不生效,直接指定成應用名的實際字串,可以生效。
解決方法:
如果本地要啟動同乙個應用的多個例項的時候,可以將${}直接替換成其代表的字串
問題描述:
在部署了zuul的伺服器上同時部署了要路由的應用,其他伺服器上也同時部署了該路由的應用,就會導致被路由服務的負載均衡混亂。
解決方法:
需要路由的應用不要跟zuul部署在同一臺伺服器上。
問題描述:
伺服器上分別配置了eth0, eth1和
eth2
三塊網絡卡,只有
eth1
的位址可供其它機器訪問,
eth0
和eth2
的 ip
無效。在這種情況下,服務註冊時
eureka client
會自動選擇
eth0
作為服務
ip,
導致其它服務無法呼叫。
有的時候windows上這些網絡卡是裝過
linux
虛擬機器之後,配置網路產生的。但是虛擬機器解除安裝了,這些配置還存在。
解決方法:
windows部署,禁用沒用的網路:
問題描述:
客戶端微服務應用同時使用註冊中心、配置中心場景下,配置客戶端使用如下服務發現方式配置配置中心,註冊語句放到配置中心倉庫上不生效,即不能註冊到註冊中心上。
spring:
cloud:
config:
profile: dev
discovery:
enabled: true
service-id: config-server
解決方法:
使用如下url的方式,但是兩種方式都有問題,具體描述參考
config-client
應用中的
readme.md
spring:
cloud:
config:
uri: $
profile: dev
首先是在consul裡
mysql
依賴用5.1.41版本
mybatis首次驗證用
1.1.1
版本 驗證失敗 報錯:「日誌版本不相容」
後修改為
1.2.4
org.mybatis.spring.boot
mybatis-spring-boot-starter
release
驗證成功
eureka裡整合
mybatis
eureka裡要求更嚴格
spring-boot
整合mybatis
的版本依賴和
spring-boot-starter
依賴是對應相容的
詳細的表
請參照官網
此處由於我們spring-boot-starter用的是
1.4.5
(cm.sr7
預設)查詢得知 mybatis-spring-boot依賴應該是用
1.2.1 版本
要注意以上
使用Spring Cloud進行微服務開發
按照上文中典型的spring cloud架構,我們通過乙個簡單的示例來體驗下spring cloud架構的魅力。1 註冊中心 建立包含eureka server的工程,工程中的pom.xml會自動引入eureka server依賴的包。在 中加入註解,宣告是eureka server服務,enabl...
Spring Cloud開發本地除錯tips
隨著微服務化,服務間的呼叫也會越來越複雜,乙個服務可能要呼叫其他多個服務 如 spring cloud開發的時候要配合測試 或開發環境 環境 eureka註冊中心和 config 但是這時候 不能讓其他同事通過這個 eureka 發現到你的本地機器,不然他們除錯就gg了 還有你可能同時負責多個服務,...
spring cloud 使用Hytrix熔斷器
一 和ribbon一起使用 1.在eyreka的客戶端加入依賴 org.springframework.cloud spring cloud starter netflix hystrix 2.1.2.release 在啟動類加上註解 enablehystrix 熔斷器在呼叫服務的介面新增快速失敗執...