Butterfly
Butterfly copied to clipboard
zk方式,zk故障,此时服务需要重启时,id生成不可用
能否考虑在本机文件系统上缓存一个workerID文件。当ZooKeeper出现问题,恰好机器出现问题需要重启时,能保证服务能够正常启动。这样做到了对三方组件的弱依赖。一定程度上提高了SLA
想了下,可以搞,不过要做限制。
本地缓存workdId,下次启动继续使用,这个前提是该workId能够继续使用,即没有过期,而没有过期的前提是,当前启动时间距离上次使用时间是小于24小时,也就是说24小时以内服务启动起来重用缓存workId是没有问题的(起来后也要继续对该wordId发起心跳,顺便刷新过期时间)。如果是24小时后起来的,则很有可能该workId已经被其他节点给占有了,这种情况就会出现id重复问题。
因此如果要搞本地文件缓存,则需要将24小时也考虑进去,24小时以内可以复用,24小时以后再启动则要必须从zk重新获取
为了更准确建议本地文件缓存的该workId小于24小时,即23小时即可
嗯,那最近有计划搞一下么,最近公司考虑接入你这个,但对SLA要求高,等你优化后我们再接入
可以搞下,不过最近有点忙,有项目要交付,要3月底了