首页 > 其他 > 详细

eureka

时间:2019-11-01 11:39:24      阅读:51      评论:0      收藏:0      [点我收藏+]

eureka

1.eureka的注册
客户端首先会将配置信息封装到InstanceInfoReplicator中,然后启动线程检测该配置是否更新(第一次也算更新),这样就会调用discoveryClient.register();方法进行服务注册。同时在源码中也会有一个finally让服务定期去注册一次
服务端会将配置信息封装到ConcurrentHashMap中,这是一个双层map集合,第一层key是服务名字,value是Map<String, Lease<InstanceInfo>>,第二层key是ip地址,lease是对InstanceInfo进行了封装,InstanceInfo中包含了客户端的
端口等等信息。

2.eureka的缓存机制
对客户端来说,需要服务的时候不会直接去访问eureka服务,他会在注册的时候或者是服务发生变化的时候将缓存放入本地,先调本地的服务信息(存在一个定时任务去定期拉eureka服务的服务列表)。
对eureka服务来说,服务注册的时候,会将信息放入ConcurrentHashMap中,但是客户端来拉列表不会从这里拉,而是会去ResponseCache中拉,ResponseCache又分为两种,一种是ReadWriteMap,另一种是ReadOnlyMap,这么做是为了读写分离
ReadWriteMap与ConcurrentHashMap实时的,ReadOnlyMap是从ReadWriteMap中获取的,他不是实时的。
3.eureka的心跳续约服务
客户端会默认30秒向eureka服务端发送心跳,如果eureka服务在90秒后还没有接收心跳就会停止该服务
4.eureka服务取消
服务关机的时候会调用shutdown,通知eureka服务下线
5.自我保护机制
当心跳小于80%就会启动自我保护机制,就会将所有的服务保持不动不会剔除任何服务,这是为了避免一个网络发生波动,eureka服务将所有的服务全部关掉。

eureka

原文:https://www.cnblogs.com/fan123yh/p/11775713.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!