标题说明了一切。
有谁知道复制beantalk的方法,以便如果beantalk服务器关闭,其他从属可以接管?
这是我想到的一种方法:我可以使beantalk将其binlog(与-b一起)写入共享位置,然后如果主节点失败,则以某种方式使辅助/备份服务器启动beantalk。
当然,必须有更好的方法。
标题说明了一切。
有谁知道复制beantalk的方法,以便如果beantalk服务器关闭,其他从属可以接管?
这是我想到的一种方法:我可以使beantalk将其binlog(与-b一起)写入共享位置,然后如果主节点失败,则以某种方式使辅助/备份服务器启动beantalk。
当然,必须有更好的方法。
Answers:
由于它是通过binlog写入磁盘的,因此我认为您可以执行与MySQL管理员通常类似的操作:心跳 w / DRBD(此处为示例)。
不过,我上次尝试使用心跳时,它不支持节点之间的非多播检查,这意味着在云/ VPS基础架构(AWS,Linode,Slicehost等)上运行或多或少是不可能的。实际上,大多数群集服务都使用多播。可能不再是这种情况,但需要注意。您可能可以使用keepalived来提供基于ip的故障转移,它也仅支持多播,但通过Willy Tarreau(HAProxy的作者)可以通过修补程序添加单播支持。我已经在一对Linode VPS服务器上进行了亲自测试,并且在主服务器发生故障的情况下keepalived能够对共享的IP地址进行故障转移。
您可能要做的一件事可能是不太理想的,就是将作业写入许多Bean跟踪的服务器(也称为分区)。如果其中一个发生故障,请让您的应用检测到此情况并改为写入其他实例。您的工作人员将不得不智能地轮询每个被缠扰的实例,并能够忽略失效的实例。由于您正在进行二进制日志记录,因此备份实例与重新启动实例一样容易,并且应用程序/工作人员将检测到并继续照常运行(并在新启动的实例中开始处理作业)。我显然正在简化流程,但这是处理它的另一种方法。