eurake高可用结构
在分布式集群中,高可用是一个必不可少的特性,作为整个分布式集群的注册中心也不例外,eureka提供了将本身注册为服务提供者的特性,能让不同的注册中心相互注册与发现,以防注册中心节点不可用导致整个分布式集群故障,以保证整个分布式集群的高可用特性。
eureka注册机制和注册信息的结构
代码语言:javascript复制服务提供者:
注册:每次启动一个eureka客户端进程时,会根据指定的defaultZone访问注册中心的接口(http协议除外),请求过程中,client进程会携带内存数据到注册中心,注册中心接收消息,保存注册结构。
续约:服务提供者会每隔秒钟向注册中心发送一次心跳,告知注册中心该节点存活,注册中心会剔除
死亡以及不活跃的节点。
注册中心:
管理注册信息结构
当注册中心接收到/eureka地址的请求之后,会根据参数信息,自动封装参数信息保存到自身的
双层map中。
第一层map:
key:服务提供者的服务服务名称
value:保存节点实例信息的第二层map
第二层map:
key:实例名称,结构固定 系统用户名:服务名:端口号
value:instance实例对象,记录了当前实例节点的所有详细信息
(meta data元数据,描述数据的信息)
服务的剔除逻辑:
注册中心每隔秒会自动检测一次所以注册的节点的节点信息,如果发现续约时间戳超过
秒的节点实例,会自动把这个节点实例从第二层map中剔除掉。
保护机制:
对于上述的服务剔除逻辑,如果出现了网络异常,通信问题等不可抗因素,防止注册中心
剔除所有节点信息,eureka提供了保护机制,当同一时间剔除超时的服务实例占整体服务的
%以上,会停止服务剔除。