gpt4 book ai didi

java - 在 RabbitMQ 上的多个节点上定义队列

转载 作者:行者123 更新时间:2023-12-01 08:53:18 25 4
gpt4 key购买 nike

我们正在使用两个 RabbitMQ 节点的集群,并使用 RabbitMQ Java 驱动程序与节点进行交互。我们正在使用“ header ”交换,它根据 header 绑定(bind)和持久队列将消息传输到队列。

问题是,队列是为一个节点定义的。如果该节点由于某种原因崩溃,则应到达该节点队列的消息将丢失。

当 RabbitMQ 检测到持有队列主节点的另一个节点无法访问时,有没有办法告诉 RabbitMQ 更改队列主节点,从而确保消息传输到队列?当节点再次出现时恢复消息?

目前,我们使用高可用队列来解决这个问题,但性能相当糟糕。我们不需要它提供的镜像功能,因为我们只在节点再次出现时恢复消息就可以了

最佳答案

您需要制作 messages persistentdelivery_mode 设置为 2 并声明队列持久。这样,当节点重新启动并保存消息时,队列就会恢复。更多内容请参见the second tutorial 。实际上我在教程中没有看到如何在java中使用它,但它是 there in phyton ,因此您需要在 javadoc 中查找,可能也是“发布”方法中的一个参数。

关于java - 在 RabbitMQ 上的多个节点上定义队列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42227650/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com