1

I understand that in HornetQ you can do live-backup pairs type of clustering. I also noticed from the documentation that you can do load balancing between two or more nodes in a cluster. Are those the only two possible topologies? How would you implement a clustered queue pattern?

Thanks!

4

2 回答 2

3

让我用两个术语来回答这个问题:一个来自 hornetq 的核心队列:

当您创建集群连接时,您正在设置一个地址,用于负载平衡 hornetq 地址和核心队列(包括其直接转换为 jms 队列和 jms 主题),用于作为集群连接基本地址一部分的地址(通常是地址是jms)

当您对核心队列进行负载平衡时,它将在不同节点之间进行负载平衡。也就是说,每个节点一次都会收到一条消息。

当同一个地址有多个队列时,集群上的所有队列都会收到消息。如果这些队列之一位于多个节点中.. 也将适用于每条负载平衡消息的前一条规则。

在 JMS 术语中:

主题订阅将接收发送到该主题的所有消息。如果一个主题订阅名称/ id 存在于多个节点中(例如不同节点上的相同 clientID 和 subscriptionName),它们将被负载平衡。

队列将通过所有现有队列进行负载平衡。

请注意,当没有消费者时,有一个转发设置。这意味着如果您没有消费者,您可能不会收到消息。您也可以使用它来配置它。

于 2013-05-15T16:28:40.670 回答
0

您将如何实现集群队列模式?

EAP 6.1/HornetQ 2.3 的提示 要实现分布式队列/主题:

没有它,不会显示任何错误,建立核心网桥连接......但没有分发消息,再次没有任何错误或警告......

  • 确保正确设置安全域安全域、用户、密码、角色。

例如,我将域 id ('other') 与域id ('ApplicationRealm')混淆 并得到了身份验证错误,但这些错误是通用的,所以我浪费了时间检查用户、密码、角色......直到我最终发现。

  • 通过启用调试( logger.org.hornetq.level=DEBUG)进行调试
于 2016-12-05T07:10:17.463 回答