Nacos服务注册
2022-08-29 22:15:44 17 举报
AI智能生成
登录查看完整内容
用于面试,记录概要特性
作者其他创作
大纲/内容
C:客户端
S:服务端
本导图符号说明
服务注册
心跳检测
C与S的2个交互
继而以执行任务的方式发送心跳包。心跳包包含C的所有信息。
对C而言,所有S节点都是对等的,随机发送。发送失败则换个S节点发送。
C发送服务注册请求
每个S节点存储全量数据,但每个S节点只负责处理一部分服务
用hash(serviceName) % S节点个数 判断是否负责处理该写请求,是,则继续处理;否,则发给负责的S节点
(如果S集群中有几点宕机或者需要扩容,那么全部请求都需要重新计算hash算法)
(判断是否负责的算法可以考虑使用一致性Hash算法(TreeMap实现))
S处理完写请求后,后台异步将数据同步给其他S节点(开启线程做服务端数据的一致性)
S接收写请求(服务注册、心跳、下线)
判断C对应的服务是否存在,不存在则当作服务注册请求处理。
S会主动发送心跳给C进行健康检查,15s内收不到C的响应则标记该C为不健康节点,再过15s仍收不到,则剔除C。
C发给S的心跳包可能在网络中滞留太久,导致被S剔除
S接收C的心跳请求
不论S存储的数据是否最新,都直接从本节点获取并返回
S接收C的读请求
判断S集群中的节点是否>1
是,则执行远程同步;
否,则线程休眠1s继续判断S集群的节点是否>1
S启动时候
启动一个UDP接收器
C向S获取服务列表时,S会收到C的UDP信息,S会将C添加到订阅队列里
S更新时会推送更新的信息给C
C启动的时候
C会开启一个任务每隔10s去S获取最新的服务列表
C第一次获取服务列表时
Nacos服务注册
0 条评论
回复 删除
下一页