nmd*_*mdr 3 failover disruptor-pattern lmax
在LMAX Disruptor模式中,复制器用于将输入事件从主节点复制到从节点.所以设置可能如下所示:

主节点的复制器将事件写入数据库(尽管我们可以考虑比写入数据库更好的机制 - 但它对问题语句并不重要).从节点的接收器从DB读取并将事件放入从节点的环形缓冲器.
从节点的输出事件被忽略.
现在,主节点的业务逻辑处理器可能比从节点的业务逻辑处理器慢.例如,主节点的BL可以在时隙102处,其中从节点可以在106处.(这可以发生,因为复制器在业务逻辑处理器之前从环形缓冲器读取事件).
在这种情况下,如果主节点发生故障并且从节点现在成为主节点,则外部系统可能会遗漏一些关键事件.这可能发生,因为节点2在充当从节点时会忽略其输出.
Martin Fowler确实说复制器的工作是保持节点同步:"之前我提到LMAX在集群中运行其系统的多个副本以支持快速故障转移.复制器使这些节点保持同步"
但我不确定它如何使Business Logic Processor保持同步?有任何想法吗?
复制直接从主节点到从节点,而不是通过数据库.复制在来自从站的确认时关闭.
http://www.infoq.com/presentations/LMAX
上面的链接更详细,值得阅读有关演示文稿的评论讨论.