据我所知,在HornetQ中你可以做实时备份对类型的聚类。我还从文档中注意到,您可以在群集中的两个或更多节点之间进行负载平衡。那些是唯一两种可能的拓扑结构吗?您将如何实现群集队列模式?
谢谢!
答案 0 :(得分:3)
让我用两个术语回答这个问题:一个来自hornetq的核心队列:
创建群集连接时,您正在设置用于负载均衡hornetq地址和核心队列的地址(包括其直接转换为jms队列和jms主题),以及作为群集连接基本地址一部分的地址(通常地址是jms)
当您对核心队列进行负载平衡时,它将在不同节点之间进行负载平衡。也就是说,每个节点当时都会收到一条消息。
如果同一地址上有多个队列,则群集上的所有队列都将收到这些消息。如果其中一个队列位于多个节点中,那么每个负载均衡消息的上一个规则也将适用。
以JMS术语:
主题订阅将收到发送给该主题的所有消息。如果主题订阅名称/ ID存在于多个节点中(比如说不同节点上的相同clientID和subscriptionName),则它们将进行负载平衡。
队列将通过所有现有队列进行负载平衡。
请注意,没有消费者时,前进时会有一个设置。意味着如果您没有消费者,您可能无法收到消息。您也可以使用它来配置它。
答案 1 :(得分:0)
您将如何实施群集队列模式?
EAP 6.1 / HornetQ的提示2.3实现分布式队列/主题:
阅读适用于您的版本的官方文档:例如: for 2.3 https://docs.jboss.org/hornetq/2.3.0.Final/docs/user-manual/html/clusters.html
请注意,旧设置clusterd=true
已弃用,定义群集连接已足够,请检查内部核心网桥是否已自动创建/群集= true在2.3 +
将 full-ha 配置作为基线,或确保 jgroups设置正确。这篇文章深入探讨了主题:https://developer.jboss.org/thread/253574
没有它,没有显示错误,核心网桥连接是 已建立...但消息未分发,再次没有错误 或警告......
E.g。我将域名('其他')与域ID 混淆了 ('ApplicationRealm')并获得auth错误,但错误是 通用,所以我浪费时间检查用户,密码,角色......直到我 最终找到了。
logger.org.hornetq.level=DEBUG
)