开发者社区 > 云原生 > 微服务 > 正文

nacos测试断电后节点跳转出现问题麻烦帮忙看一下?

nacos测试断电后节点跳转出现问题麻烦帮忙看一下?
我们的4个应用服务和nacos服务分别部署在三台服务器上并且都使用docker部署,也就是应用服务和nacos server 都是三个节点,在做高可用测试的时候,模拟服务器断电后重启的情况,我们reboot其中一台A服务器,并且停掉C服务器上的nacos server节点,这时候应该只有B服务器上的nacos 节点是UP的状态,A服务器的nacos状态应该是先从UP变成SUSPICOUS 再变成 DOWN ,最后恢复成UP , 但是我们A服务器上的业务应用在开机自启动的时候,有出现服务注册不了的情况,按道理这时候A服务器上的业务应用的责任节点应该都重新分配到B的nacos节点上了才对,但是看nacos server的日志报了一个receive invalid redirect request from peer {ip} ,这种看源码应该是两个nacos节点计算责任节点出现不一致导致的,但是这里我一直搞不明白为什么会出现这种不一致?

展开
收起
你鞋带开了~ 2024-02-28 08:53:44 83 0
1 条回答
写回答
取消 提交回答
  • 搞笑前端工程师

    根据您的描述,这个问题可能是由于Nacos集群在处理故障转移和节点状态变更时出现了一些不一致的情况。以下是我对这个问题的一些分析和建议:

    1. 首先,当您reboot A服务器并停掉C服务器上的Nacos节点时,集群应该将A服务器上的业务应用的责任节点重新分配到B服务器的Nacos节点上。但是,由于网络延迟或其他原因,A服务器上的业务应用可能在Nacos集群完成故障转移之前就尝试重新注册服务。这可能导致A服务器上的业务应用收到错误的节点信息,从而无法成功注册服务。

    2. 另一个可能的原因是,当A服务器重新启动时,它的Nacos节点可能没有正确地将状态从UP变为SUSPICIOUS,然后再变为DOWN。这可能导致集群中的其他节点(如B服务器)认为A服务器仍然可以提供服务,从而继续将请求发送给它。这种情况下,A服务器上的业务应用可能会收到无效的重定向请求。

    为了解决这个问题,您可以尝试以下方法:

    1. 调整Nacos集群的配置参数,例如增加故障转移超时时间,以便在服务器重新启动时为Nacos集群提供足够的时间来处理故障转移和节点状态变更。

    2. 在您的业务应用中实现重试逻辑,以便在遇到无效的重定向请求时,自动尝试重新注册服务。这可以确保在Nacos集群完成故障转移后,业务应用能够成功注册服务。

    3. 检查Nacos集群的网络配置,确保所有服务器之间的通信是正常的。网络延迟或丢包可能会导致节点状态变更不一致的问题。

    4. 您还可以查看Nacos的官方文档和社区讨论,看看是否有其他用户遇到了类似的问题,并参考他们的解决方案。

    希望这些建议能帮助您解决问题。如果您还有其他问题或需要进一步的帮助,请随时告诉我。

    2024-04-01 13:46:03
    赞同 展开评论 打赏

为微服务建设降本增效,为微服务落地保驾护航。

相关电子书

更多
用AI 高效测试移动应用 立即下载
移动互联网测试到质量的转变 立即下载
给ITer的技术实战进阶课-阿里CIO学院独家教材(四) 立即下载