【问题标题】:ActiveMq Failover with scheduler delay具有调度程序延迟的 ActiveMq 故障转移
【发布时间】:2016-08-28 07:51:46
【问题描述】:

假设我有 2 个 MQ 服务器(A、B)。 A 配置故障转移到 B 并且这些 MQ 服务器配置调度程序延迟 5 分钟来处理每个队列。当 A 有 50 个队列并且由于某种原因突然失败时。 MQ 服务器 B 能否继续处理 A 中的 50 个排队存储?或者 MQ B 只能处理传入队列,但不能在 A 中处理?

【问题讨论】:

  • 你已经尝试了什么?
  • 好吧,我不知道在我的分期中究竟会发生什么。我只是试图在我的本地机器上进行模拟。 2集群A故障转移B,50排队并关闭A。B将无法继续在A排队。是否有任何配置方式可以做到这一点?因为我的用例不允许那些消息在没有进程的情况下排队。
  • 有一种配置,其中 ActiveMQ 的两个实例都使用相同的数据库或消息存储,它被称为“具有共享数据库的主从配置”。这将对您的事业有所帮助,请查看activemq.apache.org/shared-file-system-master-slave.html(用于共享文件系统)或activemq.apache.org/jdbc-master-slave.html(用于共享数据库)

标签: activemq failover


【解决方案1】:

我假设您使用 KahaDB 的共享文件系统目录进行故障转移设置。当您有延迟和/或计划的消息时,它们不会放在默认的 KahaDB 数据库中,而是放在您本地的“数据”目录中(即默认情况下,一个用于 A,一个用于 B)。

您必须将您的调度程序配置为也使用共享目录(在某些网络磁盘或诸如此类的东西上)。配置示例:

<broker ... schedulerSupport="true" schedulerDirectory="/path/to/shared/directory">

【讨论】:

    猜你喜欢
    • 2015-02-08
    • 2022-11-25
    • 2015-03-21
    • 2019-05-01
    • 1970-01-01
    • 2020-04-20
    • 2017-02-04
    • 2010-11-06
    • 2012-06-04
    相关资源
    最近更新 更多