新闻资讯
Eureka的核心概念
1、Eureka Server:注册中心服务端
注册中心服务端主要对外提供了三个功能:
(1)服务注册
服务提供者启动时,会通过Eureka Client向Eureka Server注册信息,Eureka Server会存储该服务的信息,Eureka Server内部有二层缓存机制来维护整个注册表。
(2)提供注册表
服务消费者在调用服务时,如果Eureka Client没有缓存注册表的话,会从Eureka Server获取最新的注册表。
(3)同步状态
Eureka Client通过注册、心跳机制和Eureka Server同步当前客户端的状态。
2、Eureka Client:注册中心客户端
Eureka Client是一个java客户端,用于简化与Eureka Server的交互。Eureka Client会拉取、更新、缓存Eureka Server中的信息。因此当所有的Eureka Server节点都宕掉,服务消费者依然可以使用缓存中的信息找到服务的提供者,但是当服务有更改的时候会出现信息不一致。
3、Register:服务注册
服务的提供者,将自身注册到注册中心,服务提供者也是一个Eureka Client。当Eureka Client向Eureka Server注册时,它提供自身的元数据,比如IP地址、端口、运行状况指示符URL、主页等。
4、Renew:服务续约
Eureka Client会每隔30秒发送一次心跳来续约。通过续约来告知Eureka Server该Eureka Client运行正常,没有出现问题。默认情况下,如果Eureka Server在90秒内没有收到Eureka Client的续约,Server端会将实例从其注册表中删除,此事件可配置,一般情况不建议更改。
5、Eviction服务剔除
当Eureka Client和Eureka Server不再有心跳时,Eureka Server会将服务实例从服务注册列表中删除,即服务剔除。
6、Cancel:服务下线
Eureka Client在程序关闭时想Eureka Server发送取消请求,发送请求后,该客户端实例信息将从Eureka Server的实例注册表中删除。该下线请求不会自动完成,它需要调用一下内容:
DiscoveryManager.getInstance().shutdownComponent();
7、GetRegistry:获取注册列表信息
Eureka Client从服务器获取注册表信息,并将其缓存在本地。客户端会使用该信息查找其他服务,从而进行远程调用。该注册列表信息定期(每30秒)更新一次。每次返回注册列表信息可能与Eureka Client的缓存信息不同,Eureka Client自动处理。
如果由于某种原因导致注册信息列表信息不能及时匹配,Eureka Client则会重新获取整个注册表信息。Eureka Server缓存注册列表信息,整个注册表以及每个应用程序的信息进行了压缩,压缩内容和没有压缩的内容完全相同。Eureka Client和Eureka Server可以使用JSON/XML格式进行通讯。在默认情况下Eureka Client使用压缩JSON形式来获取注册列表的信息。
8、Remote Call:远程调用
当Eureka Client从注册中心获取到服务提供者信息后,就可以通过HTTP请求调用对应的服务;服务提供者有多个时,Eureka Client客户端会自动通过Ribbon自动进行负载均衡。
原文链接:https://my.oschina.net/u/4006148/blog/3169283
回复列表