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

nacos2.x版本集群中的节点leaderStatus状态都为0 #12737

Open
michaelyaya opened this issue Oct 15, 2024 · 5 comments
Open

nacos2.x版本集群中的节点leaderStatus状态都为0 #12737

michaelyaya opened this issue Oct 15, 2024 · 5 comments
Labels
area/Nacos Core contribution welcome kind/enhancement Category issues or prs related to enhancement.

Comments

@michaelyaya
Copy link

michaelyaya commented Oct 15, 2024

使用nacos2.2.1版本部署了一个3节点集群,在控制台中能看到leader节点的状态,但是在prometheus中使用nacos_monitor{name=‘leaderStatus’} 拿到的指标结果全是0

@Umbrallerstackcode
Copy link

看下日志

@KomachiSion
Copy link
Collaborator

这个指标好像需要做一下重构,目前nacos的raft-group已经扩充到4~5个, 单一的一个leaderStatus已经无法表达leader的信息,

@KomachiSion KomachiSion added contribution welcome area/Nacos Core kind/enhancement Category issues or prs related to enhancement. labels Oct 16, 2024
@Melod-YI
Copy link

我最近也看到这个指标缺失了。
请教下为什么nacos架构设计上希望是创建多个raft group,而不是只保留一个group且都持久化到db?
像持久化实例、metadata,都不知道写到什么位置去了,不像数据库那么好查看和维护。

@MatthewAden
Copy link
Contributor

我最近也看到这个指标缺失了。 请教下为什么nacos架构设计上希望是创建多个raft group,而不是只保留一个group且都持久化到db? 像持久化实例、metadata,都不知道写到什么位置去了,不像数据库那么好查看和维护。

我理解是,单个 raft group 只有一个 leader 可以应用日志,如果是多个 raft group 且不同分片的 leader 分布比较均匀的话,能提高集群的吞吐

@KomachiSion
Copy link
Collaborator

不同的数据类型会被写入到不同的raft group里, 比如实例元数据、服务元数据、持久化服务本身、服务自身的配置;分开有很多好处:

  1. 其中一个grouo状态机出问题不会影响其他的数据和可用性;
  2. 不同类型的请求在并发请求的情况下,能提高性能和吞吐,不容易因为单leader而达到瓶颈;
  3. 不同的数据本身从逻辑上分开管理,也有利于问题排查和代码可读性。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/Nacos Core contribution welcome kind/enhancement Category issues or prs related to enhancement.
Projects
None yet
Development

No branches or pull requests

5 participants