• ActiveMQ集群为主从集群, 一个主结点服务器, 其他为从结点服务器, 在主结点服务器接收到消息后,会将消息同时同步到其他从结点服务器, 因此, 当主结点服务器异常挂掉时, 会在从结点中选举出一个新的主结点, 继续提供服务,而且未消费的消息不会异常丢失.

  • 证明:

    • 初始界面:ActiveMQ集群消息同步机制

    • 初始状态下三个leveldb日志均为:

      ActiveMQ集群消息同步机制

    • 现在利用web管理界面发送一条测试消息:ActiveMQ集群消息同步机制

      ActiveMQ集群消息同步机制

    • 此时, 三个leveldb中的日志均变为了:ActiveMQ集群消息同步机制

    • 由上图可看出在此时集群中的MQ都有接收到消息,并且对该消息进行了存储

    • 并且由下面的截图可看出, 队列vz.queue.service.model有一条消息未消费, 若现在停止主节点activemq1(8161端口对应的MQ),查看消息是否还存在

      • 原来的主节点ActiveMQ集群消息同步机制

      • 停止原来的主节点之后:ActiveMQ集群消息同步机制

      • 可以看出, 原主节点已无法访问, 新的主节点变更为了8163, 且未消费的消息仍然存在
        ActiveMQ集群消息同步机制

相关文章: