开发者社区 > 云原生 > 正文

nacos 集群一个节点停掉后,为什么会因为没有了心跳,触发push 节点,触发客户端节点被清的问题

nacos 集群一个节点停掉后,之前grpc 注册到这台机器会自动注册到另外一台,但是另外一台之前维护的从停掉节点同步过来的,还是会因为没有了心跳,触发push 节点,触发客户端节点被清的问题,感觉重新注册上来的链接id和之前同步过来的id不一样了吧

展开
收起
奔放或澜 2023-12-04 21:08:31 99 0
1 条回答
写回答
取消 提交回答
  • 面对过去,不要迷离;面对未来,不必彷徨;活在今天,你只要把自己完全展示给别人看。

    在Nacos集群中,当一个节点停掉后,之前注册到该节点的gRPC服务确实会自动注册到另一台节点。但由于心跳丢失,另一台维护从停掉节点同步数据的节点可能会触发push节点操作,进而导致客户端节点被清空的问题。这可能是因为重新注册的链接ID与之前同步过来的ID不一样。

    为了解决这个问题,您可以考虑以下步骤:

    1. 确保Nacos集群中的所有节点都使用相同的数据存储位置,这样即使某个节点出现故障,其他节点也可以正确同步数据。
    2. 调整gRPC端口的生成方式,避免端口冲突。例如,可以设置主端口+1000、主端口+1001等,确保集群的端口不要采用相邻数字,步长尽量搞大点。
    3. 如果问题仍然存在,您可以尝试先停止服务,然后停止Nacos,接着删除data目录下的protocol文件夹,最后重启需要注册的服务。
    2023-12-04 21:49:13
    赞同 展开评论 打赏

阿里云拥有国内全面的云原生产品技术以及大规模的云原生应用实践,通过全面容器化、核心技术互联网化、应用 Serverless 化三大范式,助力制造业企业高效上云,实现系统稳定、应用敏捷智能。拥抱云原生,让创新无处不在。

相关电子书

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