【问题标题】:Apache Artemis: How can i create Durable Subscription for Static ClusteredApache Artemis:如何为静态集群创建持久订阅
【发布时间】:2018-05-24 00:53:04
【问题描述】:

这里是clustered-durable-subscription 的示例,这里是clustered-static-discovery,在集群静态发现中仅与一台服务器连接(集群使用集群配置自动与另一台服务器连接)。 根据文档

通常持久订阅存在于单个节点上,并且只能 但是,使用 ActiveMQ Artemis 在任何时候都有一个订阅者 可以创建具有相同的持久订阅实例 集群不同节点上的名称和客户端ID,并从 他们同时。这允许处理来自的消息的工作 以类似的方式在集群中分布的持久订阅 JMS 队列如何在集群中进行负载平衡的方法

我是否需要为静态集群添加额外的配置,或者持久订阅将在静态集群中正常工作而无需为所有节点设置客户端 ID 和订阅(正如我在静态集群中提到的,我们只与一个节点建立连接)

【问题讨论】:

    标签: activemq-artemis


    【解决方案1】:

    “clustered-static-discovery”的“静态”部分实际上只指集群节点discovery(顾名思义)。一旦发现集群节点并形成集群,那么集群的行为将与动态发现相同(例如,使用 UDP 多播)。换句话说,无论服务器端使用什么机制来发现集群节点,集群持久订阅都应该以相同的方式工作。

    【讨论】:

    • 贾斯汀在静态集群静态发现中,如果我为所有 4 个连接设置了相同的客户端 ID,那么我会遇到异常:javax.jms.InvalidClientIDException: clientID=my-client-id was already set into another connection 那么我们如何为所有连接共享一个通用 ID。跨度>
    • 查看github.com/jbertram/activemq-artemis/tree/…。我修改了 clustered-static-discovery 示例以使用持久订阅。如果你运行它,你会发现它有效。如果您在连接时设置相同的客户端 ID 和订阅名称,则需要确保您连接的节点尚未连接订阅者。
    猜你喜欢
    • 2019-09-30
    • 1970-01-01
    • 2020-11-18
    • 1970-01-01
    • 2017-09-05
    • 1970-01-01
    • 1970-01-01
    • 2014-03-19
    • 2018-05-25
    相关资源
    最近更新 更多