Eureka概念及簡單應用
1、為什麼使用Eureka?
在Spring Cloud中我們經常使用Eureka,是因為SpringCloud對Eureka支援力度非常大 ,Eureka的社群活躍多較高,版本更新的速度快。
Eureka簡介:
Eureka是Netflix開發的服務發現元件,能夠實現服務註冊、登出、健康檢查,服務發現等功能,它本身是基於Restful API服務的,用來達到負載均衡和中間層服務故障轉移的目的。
2、Eureka原理:
從上圖中說明Eureka的原理:
1、Application Service是服務提供者,是從Eureka的Region中查詢Zone對應的Eureka Server,為服務消費者提供服務;
2、Make Remote Call是服務提供者與服務消費用的呼叫關係,是採用Restful API風格
3、us-east-1c,us-east-1d,us-east-1e分別是Eureka的Zone,都屬於Eureka的Region,這個Region名字就是us-east-1
4、Application Client是服務消費者,是一個JAVA客戶端,用於簡化與Eureka Server的互動,客戶端同時也具有一個內建的、使用輪詢負載演算法的負載均衡器。
5、Eureka Server之間是通過複製的方式做資料同步的
6、Eureka還提供了客戶端快取的機制,即使所有的Eureka Server都掛掉,客戶依然可以利用快取的資訊消費其它服務
7、Eureka Server與Eureka Client之間採用心跳機制,進行健康檢查,每30秒傳送一個心跳,檢查服務是否有效。
綜上:Eureka是通過心跳檢測、健康檢查、客戶端快取機制確保了系統 的高可用性、靈活性和可伸縮性。
3、 Eureka對於許可權注意事項
如果你在工程中引入下面的包,如果不註解掉,系統會自動給設定一個隨機的密碼,儘管在Application.yml 檔案中eureka.client.serviceUrl.defaultZone設定成
4、Eureka高可用配置
Eureka本身即是Client,也是Server,所以如果部署三個節點,實現高可用, 需要讓第一個節點都註冊到其餘的兩個節點中,如下圖:
Eureka實現高可用的主要原理就是相互之間註冊,相互之後備份,保證了註冊資訊資料一致性。
5、通過Eureka/apps能夠訪問註冊的服務相關屬性,如下圖所示:
也可以指定某個服務進行單獨檢視,如下圖所示:
6、設定home-page-url
從上面 的圖中可以看,預設情況下homepageurl是圖中的樣子,我們可以通過在application.yml中配置這個屬性:eureka.instance.home-page-url-path:/ribbon,這樣訪問的時候,hompageurl就是變成了http://192.168.0.104:7900/ribbon;