《SpringCloud.H心法總綱》 spring
繼續上一篇,接下來Springcloud配置Eureka Client。app
勾選兩個依賴spa
須要繼承父工程.net
<parent> <groupId>com.springcloud</groupId> <artifactId>father</artifactId> <version>0.0.1-SNAPSHOT</version> </parent>
刪除與父工程重複的配置,達到簡潔明瞭的效果插件
添加子模塊的依賴關係server
<module>eureka-client</module>
對eureka-client的application.properties配置中間件
# eureka-client項目端口號 server.port=8071 # eureka-client項目實例名 spring.application.name=eureka-client # eureka-client須要去註冊的地址,也就是eureka-server的地址+/eureka的後綴 eureka.client.serviceUrl.defaultZone=http://localhost:8070/eureka/
運行成功以後,刷新一遍eureka-server界面,查看一下是否有註冊實例blog
而後看到下面的信息咱們已經註冊成功,不過1顯示有兩行報錯信息,意思爲Eureka-server開啓自我保護機制,緣由是繼承
心跳機制ci
名字 | 含義 | 條件 |
Lease expiration enabled | 是否開啓保護機制,false表示開啓 | 當Renew threshold < Renews(last min)爲false |
Renew threshold | server指望在每分鐘中收到的心跳次數 | 1 + 2 * eureka-clinet的個數 |
Renews(last min) | 上一分鐘eureka-client發送的請求爲2次 | 一個eureka-client默認每隔30秒發送一次心跳,因此一分鐘爲2 |
因此目前咱們兩個辦法解決,請看下一步
因爲上一步咱們已經說明了,第一個辦法是讓eureka-server註冊中心本身關閉這個機制,因此在eureka-server的配置文件中添加以下:
# eureka-server 關閉自我保護心跳機制 eureka.server.enable-self-preservation=false
關閉後出現提出語,以下,表示在配置上,自我保護機制關閉
修改eureka-client主動發送心跳的頻率,把默認值每隔30秒發送一次心跳改爲15秒或者10秒
# eureka-client 默認30秒主動向註冊中心發送一次心態 eureka.instance.lease-renewal-interval-in-seconds=10
修改等待一分鐘後,刷新Eureka-server界面,以下:
這樣,甚至連紅色的一行都沒有了,因此我以爲這個是更好的解決方案,到此咱們的服務註冊和發現也完成了,eureka-client完成配置,又掌握了一個小組建
在配置eureka-client的時候,在它的啓動類上,剛剛使用了
@EnableEurekaClient
其實也可使用,都能起到相同的做用
@EnableDiscoveryClient
二者的區別就是SpringCloud的服務註冊與發現,至少有三個插件可使用,分別是Eureka、Zookeeper、Consul三個中間件,並且Eureka和Consul是競爭關係,可是SpringCloud默認使用的是Neflix Eureka,因此自動使用的註冊中心中間件是Eureka,因此@EnableEurekaClient使用的就是Eureka中間件,若是使用@EnableDiscoveryClient,會有選擇性的選擇中間件,若是公司要求大家選擇其餘的中間件的話。