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

Nacos1.4.1 集群选举失败 #5339

Closed
heavymetal5 opened this issue Apr 12, 2021 · 12 comments
Closed

Nacos1.4.1 集群选举失败 #5339

heavymetal5 opened this issue Apr 12, 2021 · 12 comments
Labels
status/invalid This doesn't seem right

Comments

@heavymetal5
Copy link

使用三台阿里云ECS服务器部署,当前两台启动时,有leader和follower。第三台起来后一瞬间也作为follower。但是立刻naming-raft.log日志报出
image
然后nacos控制台中只显示
image
查询状态接口报
image

都快搞疯了,请大神给些指导

@MajorHe1
Copy link
Collaborator

Nacos在1.4版本后使用Jraft替换了自研的Raft实现,你启动第三台机器时候,nacos集群判断所有的nacos-server节点的版本都大于1.4了,然后就决定开始停止旧的raft协议,所以你看到stop old raft protocol 其实是正常的,这一段逻辑在nacos 的源码中搜索 “start to close old raft protocol”应该能看到。
image

至于后面这个查询状态接口的异常,这是个1.3版本就被废弃的接口了
image

建议看一下源码和官方文档哈~

@heavymetal5
Copy link
Author

Nacos在1.4版本后使用Jraft替换了自研的Raft实现,你启动第三台机器时候,nacos集群判断所有的nacos-server节点的版本都大于1.4了,然后就决定开始停止旧的raft协议,所以你看到stop old raft protocol 其实是正常的,这一段逻辑在nacos 的源码中搜索 “start to close old raft protocol”应该能看到。
image

至于后面这个查询状态接口的异常,这是个1.3版本就被废弃的接口了
image

建议看一下源码和官方文档哈~

那截图中的控制台节点元数据正常么,因为我看网上其他资料或者启动两台机器时,还有一段是选举出leader和follower

@heavymetal5
Copy link
Author

Nacos在1.4版本后使用Jraft替换了自研的Raft实现,你启动第三台机器时候,nacos集群判断所有的nacos-server节点的版本都大于1.4了,然后就决定开始停止旧的raft协议,所以你看到stop old raft protocol 其实是正常的,这一段逻辑在nacos 的源码中搜索 “start to close old raft protocol”应该能看到。
image

至于后面这个查询状态接口的异常,这是个1.3版本就被废弃的接口了
image

建议看一下源码和官方文档哈~

例如:网上其他配置完的图image
自己查询状态的接口有新的么?能告知么

@MajorHe1
Copy link
Collaborator

两个问题:

  1. 1.4.1版本的这个集群信息不一定是准的,参见issue nacos 1.4.1 集群中某节点下线,其余节点不能正确稳定感知状态 #4925 ,特别是用 address-server模式寻址的时候,由于ServerMemberManager对于其他Member的更新策略是不对的(在2.0版本已经修复) ,所以在控制台的界面里面查看节点元数据在变化(时而有,时而没有)是正常的。
    但是,在集群稳定后,还是有确定的LEADER和FOLLOWER,多刷新几次肯定有
  2. 官方文档 https://nacos.io/zh-cn/docs/open-api.html

@KomachiSion
Copy link
Collaborator

1.4.1已经会在使用新raft后删除旧raft元数据信息了。不会再造成困扰。

我看截图中的版本是1.4.0-Snapshot,这个版本不会清理旧raft元数据信息, 因此你看到的数据是不正确的。

@heavymetal5
Copy link
Author

两个问题:

  1. 1.4.1版本的这个集群信息不一定是准的,参见issue nacos 1.4.1 集群中某节点下线,其余节点不能正确稳定感知状态 #4925 ,特别是用 address-server模式寻址的时候,由于ServerMemberManager对于其他Member的更新策略是不对的(在2.0版本已经修复) ,所以在控制台的界面里面查看节点元数据在变化(时而有,时而没有)是正常的。
    但是,在集群稳定后,还是有确定的LEADER和FOLLOWER,多刷新几次肯定有
  2. 官方文档 https://nacos.io/zh-cn/docs/open-api.html

我搭建的集群过了几个小时后多次刷新还是不出现LEADER和FOLLOWER信息,只显示如图信息
image

@heavymetal5
Copy link
Author

1.4.1已经会在使用新raft后删除旧raft元数据信息了。不会再造成困扰。

我看截图中的版本是1.4.0-Snapshot,这个版本不会清理旧raft元数据信息, 因此你看到的数据是不正确的。

您说的1.4.0-Snapshot是我在网上找的截图,用来说明我的集群节点信息中没有出现这些信息(如图)
image

@MajorHe1
Copy link
Collaborator

  1. 1.4.0版本和1.4.1版本使用的raft协议不一样,看到的元数据是不一样的,你从网上找的截图使用的版本是1.4.0,你自己搭建的版本是1.4.1,元数据不一样;
  2. 你的集群其实也有leader 信息
    image
  3. 1.4.1版本后容易选主失败等问题,只能等待官方修复了

@heavymetal5
Copy link
Author

  1. 1.4.0版本和1.4.1版本使用的raft协议不一样,看到的元数据是不一样的,你从网上找的截图使用的版本是1.4.0,你自己搭建的版本是1.4.1,元数据不一样;
  2. 你的集群其实也有leader 信息
    image
  3. 1.4.1版本后容易选主失败等问题,只能等待官方修复了

多谢您的解答,那我就不纠结这些信息的问题了。再问您一下,nacos2.0里服务注册成功但是控制台服务列表是空的是什么问题呢?(角色权限我已经设置了读写权限,2.0.0-bugfix (Mar 30th, 2021)版本)

@MajorHe1
Copy link
Collaborator

多谢您的解答,那我就不纠结这些信息的问题了。再问您一下,nacos2.0里服务注册成功但是控制台服务列表是空的是什么问题呢?(角色权限我已经设置了读写权限,2.0.0-bugfix (Mar 30th, 2021)版本)

你使用的客户端是 nacos-client 2.0.0 还是 nacos-client 1.4.1?
建议退回到nacos-client 1.4.1试一下。我碰到的问题是 nacos 2.0.0显示服务注册成功但控制台不显示,1.4.1注册成功且控制台显示,根据控制变量法,判断是2.0.0使用的grpc协议出了问题,但此时的根本原因是集群的选主失败了。
你可以用POSTMAN调服务注册的openAPI看看能不能成功,还是返回Server is down now
如果是的,建议新开一个ISSUE讨论这个问题,不要在这个issue讨论了

@heavymetal5
Copy link
Author

多谢您的解答,那我就不纠结这些信息的问题了。再问您一下,nacos2.0里服务注册成功但是控制台服务列表是空的是什么问题呢?(角色权限我已经设置了读写权限,2.0.0-bugfix (Mar 30th, 2021)版本)

你使用的客户端是 nacos-client 2.0.0 还是 nacos-client 1.4.1?
建议退回到nacos-client 1.4.1试一下。我碰到的问题是 nacos 2.0.0显示服务注册成功但控制台不显示,1.4.1注册成功且控制台显示,根据控制变量法,判断是2.0.0使用的grpc协议出了问题,但此时的根本原因是集群的选主失败了。
你可以用POSTMAN调服务注册的openAPI看看能不能成功,还是返回Server is down now
如果是的,建议新开一个ISSUE讨论这个问题,不要在这个issue讨论了

谢谢您的解答!我是1.4.1和2.0.0两个客户端都试验过,2.0.0出现显示服务注册成功但控制台不显示。我先按照您的方法试验,如果有问题的话就去新开一个ISSUE

@KomachiSion
Copy link
Collaborator

多谢您的解答,那我就不纠结这些信息的问题了。再问您一下,nacos2.0里服务注册成功但是控制台服务列表是空的是什么问题呢?(角色权限我已经设置了读写权限,2.0.0-bugfix (Mar 30th, 2021)版本)

你使用的客户端是 nacos-client 2.0.0 还是 nacos-client 1.4.1?
建议退回到nacos-client 1.4.1试一下。我碰到的问题是 nacos 2.0.0显示服务注册成功但控制台不显示,1.4.1注册成功且控制台显示,根据控制变量法,判断是2.0.0使用的grpc协议出了问题,但此时的根本原因是集群的选主失败了。
你可以用POSTMAN调服务注册的openAPI看看能不能成功,还是返回Server is down now
如果是的,建议新开一个ISSUE讨论这个问题,不要在这个issue讨论了

谢谢您的解答!我是1.4.1和2.0.0两个客户端都试验过,2.0.0出现显示服务注册成功但控制台不显示。我先按照您的方法试验,如果有问题的话就去新开一个ISSUE

再开一个issue吧。

这个issue先关闭了。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
status/invalid This doesn't seem right
Projects
None yet
Development

No branches or pull requests

3 participants