开发者社区> 问答> 正文

nacos 数据流转有些疑问

  1. 注册失败,心跳成功,那么服务也会注册到节点上,最后也会同步到其它节点;这个会不会有一种幻觉的感觉,明明失败了,过一会儿查看确有了
  2. tcp 健康检测机制,根据检查结果,实例状态发送变化,怎么同步给其它实例呢 --我看源码是发送请求/api/healthCheckResult 但是没有找到这个请求接收的类;就是TCP 健康检查结果数据怎么流转的呢
  3. raft 存储数据的问题

三个活跃节点 A,B,C;其中A 为leader 1.在注册服务的时候,先在A 节点存储成功,但是这个时候B,C 因为某种原因网络波动了,导致最终注册失败,提示给客户端注册失败;但是随后网络恢复,leader 会通过心跳把刚才注册的服务同步到其它节点吗?如果会,其实表示已经注册成功了; 即使不会,A 节点已经有刚注册节点,这个不需要回滚机制吗?

目前有5个节点,A,B,C,D,E 其中 A 为leader 2.注册服务时,A 向B发送了注册请求后就宕机了,B 已经存储了,最后leader 选举,选了C (有可能把);那c 在发起心跳时,由于B 的term >C ,无法接受C 的心跳数据同步,一直会出现,B 数据多余C 情况,除非新增服务;这种情况能容忍吗

展开
收起
一人吃饱,全家不饿 2021-02-02 10:51:15 4205 0
来自:阿里开源
1 条回答
写回答
取消 提交回答
    1. 是一个优化点
    2. 关于健康检查结果的改变,通过distro协议的对账机制同步给其他节点。没有走raft
    3. 一致性协议是不存在回滚机制的,只有提交成功或者不成功;B的term大于C,C就不可能会是Leader,除非网络分区的因素,C节点所在的网络分区的总Nacos节点数满足过半要求,且C的term最大
    2021-02-02 11:23:19
    赞同 展开评论 打赏
问答分类:
问答标签:
问答地址:
来源圈子
更多
收录在圈子:
+ 订阅
阿里巴巴相信开源的世界里人人贡献代码,人人获得收益,共同创造一个互帮互利的社区,促进技术进步和发展。
问答排行榜
最热
最新

相关电子书

更多
Nacos架构&原理 立即下载
workshop专场-微服务专场-开发者动手实践营-微服务-使用Nacos进行服务的动态发现和流量调度 立即下载
Nacos 启航,发布第一个版本, 云原生时代助力用户微服务平台建设 立即下载