eureka 用以服務發現、服務註冊,比較流行的有consul(後面再介紹)html
eureka介紹:spring
eureka爲netflix開源軟件,分爲三個部分:後端
eureka服務:用以提供服務註冊、發現,已一個war的形式提供 網絡
eureka-server: 相對client端的服務端,爲客戶端提供服務,一般狀況下爲一個集羣app
eureka-client:客戶端,經過向eureka服務
發現註冊的可用的eureka-server,向後端發送請求測試
spring cloud eureka
分爲兩部分字體
爲了更好的演示服務端與客戶端,我採用兩個項目進行對比演示,先建立服務端在建立客戶端:(不要急,一步一步來)code
第一步:建立spingboot2.0的項目,項目的pom文件以下:springcloud版本介紹server
第二步:在啓動類上添加註解:@EnableEurekaServer 讓enreka生效htm
第三步:配置文件:application.yml
第四步:啓動測試:
注意:我把registerWithEureka改成true,再看一下:
到這,服務端的我基本介紹完了,注意點我也寫出來了,下面咱們一塊兒看客戶端:
第一步:引入pom文件:
第二步:添加客戶端註解:@EnableEurekaClient
第三步:配置文件(重要,往那個註冊中心註冊服務就在這配置)
第四步:寫個接口測試一下:
第五步:啓動服務端和客戶端便可:
測試客戶端接口:
到這客戶端與服務端都演示完了
1>上面演示過程當中我是先啓動服務端再啓動客戶端,演示正常,那若是我先啓動客戶端,在啓動服務端會怎樣呢? ----這是會報錯的,以下:
這是由於客戶端在啓動時就會向註冊服務端發送心跳,可是此時服務端沒啓動,因此會報找不到服務端,等到服務端啓動這個錯就會消失。
2>客戶端中止,會當即從服務端消失嗎?
不會的,在下一個心跳到達以前不會消失 默認是一分鐘
eureka.server.evictionIntervalTimerInMs=5000 可是能夠在配置文件中設置,驅除下線的時間
3>紅字提醒
系統在三種狀況下會出現紅色加粗的字體提示:
1.在配置上,自我保護機制關閉
RENEWALS ARE LESSER THAN THE THRESHOLD. THE SELF PRESERVATION MODE IS TURNED OFF.THIS MAY NOT PROTECT INSTANCE EXPIRY IN CASE OF NETWORK/OTHER PROBLEMS.
2.自我保護機制開啓了
EMERGENCY! EUREKA MAY BE INCORRECTLY CLAIMING INSTANCES ARE UP WHEN THEY'RE NOT. RENEWALS ARE LESSER THAN THRESHOLD AND HENCE THE INSTANCES ARE
NOT BEING EXPIRED JUST TO BE SAFE.
3.在配置上,自我保護機制關閉了,可是一分鐘內的續約數沒有達到85% , 可能發生了網絡分區,會有以下提示
THE SELF PRESERVATION MODE IS TURNED OFF.THIS MAY NOT PROTECT INSTANCE EXPIRY IN CASE OF NETWORK/OTHER PROBLEMS.