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

 

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