据我所知芹菜,芹菜殴打是一种被视为SPOF的调度程序。这意味着服务崩溃,没有任何计划和运行。
我的情况是,我需要一个带有两个调度程序的HA设置:主/从,主设备定期进行一些调用(假设每隔30分钟),而slave可以空闲。
当主机崩溃时,从机需要成为主机并从死机主机上取下左侧,并继续执行周期性任务。 (领导人选举)
这里的要求是:
起搏器是否是与芹菜相结合的合适工具?
答案 0 :(得分:0)
简短的回答是“是的”。心脏起搏器会在这里做你想做的事。
更长的答案是,由于需要在序列中间重新启动,因此您的体系结构很棘手。
这里有两个解决方案。第一种是使用某种数据库(或DRBD文件系统)来记录50个呼叫中的25个已完成的事实。问题不在于24个完成的呼叫,或者25个尚未完成的呼叫,它是系统正在进行的,当它崩溃时。打电话给#25,比方说。如果C25尚未启动,那么你没问题。从属设备将在Pacemaker控制下启动,DRBD文件系统将进行故障转移,新主设备将执行#25至#50。如果调用#25但旧主人还没有标记它会发生什么呢?
你可以设计它,以便在实际执行之前将其标记为完整的,在这种情况下,C25不会在这个特定场合被调用,或者你可以将其标记为完整< em>在调用之后,C25将被调用两次。
理想情况下,您可以使调用成为幂等的。这是你的第二个选择。在这种情况下,C1 - >是否无关紧要。 C25再次被调用,因为没有重复的影响。 C26 - &gt; C50只能被调用一次。我对你的架构知之甚少,不知道哪个有用,但希望这会有所帮助。
Pacemaker肯定会处理失误。添加DRBD,您可以在两个系统之间保存状态。但是,您需要自己解决部分呼叫问题。