Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

receive invalid redirect request from peer 导致节点数据脑裂 #12070

Open
ZJulius opened this issue May 8, 2024 · 3 comments
Open

receive invalid redirect request from peer 导致节点数据脑裂 #12070

ZJulius opened this issue May 8, 2024 · 3 comments

Comments

@ZJulius
Copy link

ZJulius commented May 8, 2024

通过#9184看到了同样问题,我在平滑升级1.3.2->2.0.3时也遇到了
1、当三个节点都升级到2.0.3此时会不停的打印日志:upgrade check result false,但是一旦有一个节点readyToUpgrad=ture时,就会导致集群算法不一致,然后就报错:receive invalid redirect request from peer。
2、升级文档里面说到的:
---当集群升级完成后,可以先观察一段时间运行情况,当确认无误后,可以关闭双写,从而释放性能---
这里关闭双写是否能在所有节点readyToUpgrad=false的时候就关闭?如果不能那不就根本没法解决这个问题,毕竟问题是发生在readyToUpgrad状态变更的过程中的。

@KomachiSion
Copy link
Collaborator

  1. 可以直接执行关闭双写, 关闭双写是强制切换到2.0模式。
  2. 如果一个节点变成readyToUpgrad=ture后报错receive invalid redirect request from peer,那么大概率你的数据其实是在抖动的过程中, 有大量服务处于不停上下线的状态,导致数据刚校验完成,就又变的不一致,或者是存在某个服务同时存在持久化实例和非持久化实例这种非标准用法,这种情况下只能关闭双写,保持集群状态一致。

@ZJulius
Copy link
Author

ZJulius commented May 10, 2024

1、强制关闭,会影响300多个在存的注册服务之间的通信么?
2、很有可能是所说的情况,毕竟300多个服务是实时在线的,我也只敢平滑升级

@KomachiSion
Copy link
Collaborator

1、强制关闭,会影响300多个在存的注册服务之间的通信么? 2、很有可能是所说的情况,毕竟300多个服务是实时在线的,我也只敢平滑升级

  1. 不会,只是切换了nacos-server的运行模式。
  2. 如果是的话,建议先看下不升级的情况,naming-server日志是不是经常有service的change事件(此时业务并没有变更),是的话建议在升级前先修复这个问题,看下是不是心跳间隔,超时时间设置太短了。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants