nacos原理
配置中心原理
1.Nacos 客户端使用长轮询请求客户端变更数据,并且设置30s超时,当配置发生变化响应会立即返回,否则一直等到29.5s之后再返回响应。
2.客户端的请求到达服务端后,服务端将该请求加入AllSubs的队列中,等待配置发生变更时DataChangeTask主动去触发,并将变更后的数据写入响应
3.与此同时服务端也会将请求封装成一个调度 任务去执行 ,等待调度 的期间就是等DataChangeTask主动触发,如果DataChange未触发的话,则调度任务开始执行数据变更的检查,然后将检查结果写入 响应结果。
注册中心原理
1.客户端启动时会将当前服务信息包含ip、端口、服务名、集群等信息封装为一个instance对象,并创建一个定时任务,每隔一段时间向Nacos服务器发送Put请求并携带信息。
2.Nacos服务端在接收到心跳请求后,会去检查当前服务列表中有没有该实例,如果没有就注册实例,注册完成后就创建心跳定时任务 ,更新客户端实例的最后心跳时间,如果当前实例是非健康状态则更为健康状态。
服务实例添加方式
Nacos将实例添加到对应服务列表中会根据AP和CP
1.CP模式基于Raft协议,由Leader节点将数据更新内存和磁盘文件,必须集群半数以上节点写入成功才会返回客户端响应。
2.AP模式基于Distro协议,向任务阻塞队列添加一个本地服务实例改变任务,去更新本地服务列表,然后遍历集群中得所有节点,分别创建数据同步任务进行数据同步,不需要等待同步任务完成即返回。
Nacos
https://www.zhihu.com/question/485925746/answer/2525479728?utm_campaign=shareopn&utm_content=group3_Answer&utm_medium=social&utm_oi=809429980260995072&utm_psn=1566427540025233408&utm_source=wechat_session