Apollo中Eureka,metaService,configService關係

官網地址

https://github.com/ctripcorp/apollo

下載源碼:

https://github.com/ctripcorp/apollo/releases

配置中心介紹:

https://github.com/ctripcorp/apollo/wiki/Apollo%E9%85%8D%E7%BD%AE%E4%B8%AD%E5%BF%83%E4%BB%8B%E7%BB%8D

Apollo配置中心設計

https://github.com/ctripcorp/apollo/wiki/Apollo%E9%85%8D%E7%BD%AE%E4%B8%AD%E5%BF%83%E8%AE%BE%E8%AE%A1#13-%E5%90%84%E6%A8%A1%E5%9D%97%E6%A6%82%E8%A6%81%E4%BB%8B%E7%BB%8D

部署&開發遇到的常見問題

https://github.com/ctripcorp/apollo/wiki/%E9%83%A8%E7%BD%B2&%E5%BC%80%E5%8F%91%E9%81%87%E5%88%B0%E7%9A%84%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98#8-%E5%B0%86config-service%E5%92%8Cadmin-service%E6%B3%A8%E5%86%8C%E5%88%B0%E5%8D%95%E7%8B%AC%E7%9A%84eureka-server%E4%B8%8A

參考文章

1,apollo源碼閱讀,注意基於1.5以下

http://www.iocoder.cn/categories/Apollo/

2,攜程Apollo統一配置中心的搭建和使用(java)

https://blog.csdn.net/luhong327/article/details/81453001

3,metaService介紹

https://www.jianshu.com/p/12ae8455d48a

疑問:

1,是基於jar包開發,還是基於源碼開發(是否使用的是自己的Eureka)

基於jar開發,apollo-configService服務包含config,eureka,meta,相當於部署在同一個服務上,apollo-configService本身是一個eureka服務端,也是一個客戶端。

如果使用自己的eureka,首先把apollo-configService 中Eureka註銷掉,只是把它作爲一個Eureka客戶端,apollo-configService服務只包含config,meta。注意Apollo1.5及以上,與Apollo1.5以下版本,代碼不同,註銷方式不同。參考上文:常見問題解決。

2,配置文件中meta到底配置什麼地址,configService地址,metaService地址,還是Eureka地址

參考:https://www.jianshu.com/p/12ae8455d48a

答案是:metaService地址。通過疑問1,我們知道無論哪種情況,configService包含config和meta,在網上查詢了很多質料,很多說meta地址是config服務地址,因爲config和meta在一個機器上,這樣配置是對的,但說不通。參考下圖:官網總體設計圖。

可以看出,Client或者Portal是調用Meta Service,Meta Service關聯Eureka,進而通過負載均衡算法找到一臺,Config Service或則Admin Service。

3,Meta Service是一個什麼角色

它是一個Eureka客戶端

4,爲什麼要使用Meta Service封裝Eureka

Client或者Portal通過負載均衡算法調用Config Service或則Admin Service,不用每次都通過eurekaClient調用,封裝成meta service後,Client和Portal啓動項目初始化時,獲取meta service地址,通過meta service 統一調用eurekaClient獲取config,admin服務地址。緩存到本地。

5,爲什麼Meta Service可以獲取到Config Service或Admin Service服務ip+端口

前面說了Meta Service也註冊到eureka了,它是一個Eureka客戶端,它本地也存儲了Eureka服務列表,就相當於客戶端直接相互訪問,先獲取Config Service或Admin Service服務名,ribbon負載均衡,找到ip+端口,http調用。

下圖爲獲取configService服務ip端口源碼:可以看出,調用configService通過 EurekaClient而不是FeignClient。

overall-architecture

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章