Butterfly icon indicating copy to clipboard operation
Butterfly copied to clipboard

zk方式,zk故障,此时服务需要重启时,id生成不可用

Open huminpet opened this issue 3 years ago • 3 comments

能否考虑在本机文件系统上缓存一个workerID文件。当ZooKeeper出现问题,恰好机器出现问题需要重启时,能保证服务能够正常启动。这样做到了对三方组件的弱依赖。一定程度上提高了SLA

huminpet avatar Mar 06 '22 12:03 huminpet

想了下,可以搞,不过要做限制。

本地缓存workdId,下次启动继续使用,这个前提是该workId能够继续使用,即没有过期,而没有过期的前提是,当前启动时间距离上次使用时间是小于24小时,也就是说24小时以内服务启动起来重用缓存workId是没有问题的(起来后也要继续对该wordId发起心跳,顺便刷新过期时间)。如果是24小时后起来的,则很有可能该workId已经被其他节点给占有了,这种情况就会出现id重复问题。

因此如果要搞本地文件缓存,则需要将24小时也考虑进去,24小时以内可以复用,24小时以后再启动则要必须从zk重新获取

为了更准确建议本地文件缓存的该workId小于24小时,即23小时即可

simonalong avatar Mar 13 '22 06:03 simonalong

嗯,那最近有计划搞一下么,最近公司考虑接入你这个,但对SLA要求高,等你优化后我们再接入

huminpet avatar Mar 16 '22 02:03 huminpet

可以搞下,不过最近有点忙,有项目要交付,要3月底了

simonalong avatar Mar 16 '22 07:03 simonalong