Closed zxuanhong closed 3 months ago
没有这种机制,只要没有走 raft 协议移除这个节点,leader 就会持续的探测这个节点,这是 raft 协议必须要做的,如果 raft 内部就可以决定临时抛弃某个节点,那么就没什么一致性可言了,这种事情要在外层做(管理控制面),raft 本身的问题,还是建议阅读论文
@fengjiachun 管理层怎么做,移除节点??这合适吗??或者cli有可以停止心跳的接口??或者给个参考示例??
raft协议是这样,但是做这一切不可能原封不动,总得给用户或者真实应用场景预留可操作的接口吧?。
移除节点不就调用 remove peer(CliService) 么?至于什么情况要移除,那要看管理控制面怎么监控所有节点,按照什么指标来判断
@fengjiachun 但是一来就操作移除节点,这合适吗???我知道移除节点怎么操作,但是这个本不应该进行移除操作的。
协议核心是这样没问题,至少在协议基础上预留可操作接口。协议不就是也是为了实际生产应用吗?应用都不好应用,那还谈协议有啥意义了??
你不移除,raft group 中的 leader 就要无限的往该 follower 节点上发心跳探测,以确保最及时的知道该节点是否回复,这是最基本的
如果预留了一个你要的接口,连一致性的保证不了,脱离了 raft 协议框架,还谈什么谈
这个话题没必要继续,我觉得还是先去了解 raft 协议本身
Your question
Environment
java -version
):uname -a
):