微服务--eureka

2021-02-23  本文已影响0人  chanyi

本文的目录结构:
1、概念
2、服务端和客户端之间的服务注册信息获取
3、服务端的自我保护机制
4、服务端的缓存机制
5、eureka的Regin zone
6、eureka的数据结构
7、eureka的register机制
8、eureka的reNew机制
9、eureka的cancel机制
10、eureka的evict机制
11、eureka的配置
12、服务端的集群(节点复制和数据同步)
13、异常问题

1、概念

2、服务端和客户端之间的服务注册信息获取

(1)、增量变化服务注册信息存储在一个ConcurrentLinkedQueue中(变量:rencentlyChangedQueue)
(2)、队列中存储3min内有改动的服务注册信息
(3)、客户端增量获取数据的时候获取两种信息(3min内改动的注册信息和全量注册信息的hash值)
(4)、客户端按照本地的注册和获取的增量的注册信息进行整合,得到完整的注册信息
(5)、客户端对完整的注册信息进行hash计算,然后比较计算所的hash值和获取的全量的hash值是否相同,不相同则去服务端获取全量的注册信息
增量获取流程图

3、服务端的自我保护机制

4、服务端的缓存机制

(1)、客户端将服务信息注册在一级缓存registry中。(每30s一次心跳续约)
(2)、一级缓存registry收到注册信息后,先清空二级缓存readWriteCacheMap中的注册信息,然后在同步新数据给readWriteCacheMap二级缓存。
(3)、二级缓存按照30s一次的频率给三级缓存readOnlyCacheMap同步数据
(4)、其他的客户端连接注册中心Server30s一次的频率从三级缓存readOnlyCacheMap中获取,如果readOnlyCacheMap中获取不到,则直接去一级缓存registry中获取。
(5)、一级缓存中默认每隔60s检查服务续期,如果90秒内,服务还没有续期,则删除注册信息。同时同步给二级三级缓存。
(6)、服务下线时,一级缓存registry中的注册信息删除,同时删除二级缓存的数据。30s后二级同步三级缓存时发现二级缓存已失效,则删除三级缓存的注册表信息。则会期间会有时间的延迟。
(7)、二级缓存的默认有效期是180s(3min),3min后数据会失效,然后二级缓存数据清空

5、eureka的Regin zone

6、eureka的数据结构

7、eureka的register机制

8、eureka的reNew机制

9、eureka的cancel机制

10、eureka的evict机制

11、eureka的配置

12、服务端的集群(节点复制和数据同步)

13、异常问题

1、eureka服务中心挂掉后,注册在服务中心的A,B服务是否还能互相访问?

(1)、如果AB服务之间从没有连接到eureka,eureka服务就挂掉,那么AB是无法互相访问的,因为并没有从注册中心获取到注册表信息,所以无法访问。
(2)、如果AB服务已经连接到过eureka,那么eureka挂掉之后,AB服务之间还是会保存注册表信息,所以还是可以访问的。

(待续。。。)

上一篇下一篇

猜你喜欢

热点阅读