sofastack / sofa-jraft

A production-grade java implementation of RAFT consensus algorithm.
https://www.sofastack.tech/projects/sofa-jraft/
Apache License 2.0
3.57k stars 1.14k forks source link

@shiftyman 你说的这个极端情况不会出现的,因为 groupA 的 leader 也有 step down timeout 的定时器,他在检测到没有超过半数节点 alive 的情况下,会主动 step down。 #508

Closed bobbylv closed 3 years ago

bobbylv commented 3 years ago

@shiftyman 你说的这个极端情况不会出现的,因为 groupA 的 leader 也有 step down timeout 的定时器,他在检测到没有超过半数节点 alive 的情况下,会主动 step down。

Originally posted by @killme2008 in https://github.com/sofastack/sofa-jraft/issues/15#issuecomment-471476481 目前主动stepdown是直接shutdown掉服务?如果网络恢复了节点能自动恢复吗?最近小弟在使用过程中,做拔网线测试时服务自己shutdown了,看日志应该是这个地方处理的,所以想请教下大神

killme2008 commented 3 years ago

jraft 不会 shutdown 自己,只会进入 error 状态,你说的 shutdown 什么意思

fengjiachun commented 3 years ago

@bobbylv 这是你自己调用了 shutdown

killme2008 commented 3 years ago

dmesg 看看吧,可能被 oom killer 之类的信号 kill 了。

bobbylv commented 3 years ago

有查过代码和dmesg过,如果确认jraft不会自己shutdown,我这边再看看是不是哪有问题,谢谢了

fengjiachun commented 3 years ago

有查过代码和dmesg过,如果确认jraft不会自己shutdown,我这边再看看是不是哪有问题,谢谢了

不会自己 shutdown

fengjiachun commented 3 years ago

你自己有使用 rpcClient 或者 rpcServer 并且创建了很多实例吗?

fengjiachun commented 3 years ago

什么场景? 是在不断 start 和 shutdown ,rpcClient/rpcServer 在跑单测还是怎么?

bobbylv commented 3 years ago

应该是使用了这个CliService的原因,修改完这块的使用就不会了

bobbylv commented 3 years ago

请问下怎么获取存活的节点和leader节点信息呢?

bobbylv commented 3 years ago

什么场景? 是在不断 start 和 shutdown ,rpcClient/rpcServer 在跑单测还是怎么?

是一个监控告警的模块里,使用了CliService,使用的方式有问题

fengjiachun commented 3 years ago

请问下怎么获取存活的节点和leader节点信息呢?

看下 CliService 的 api, 可以结合 RouteTable 辅助使用

fengjiachun commented 3 years ago

没有其他问题先关闭了