gpt4 book ai didi

java - Spring Cloud 流: Republish to other amqp connection if current connection throws exception

转载 作者:行者123 更新时间:2023-12-02 11:16:06 25 4
gpt4 key购买 nike

我有 2 个相同的 RabbitMQ 服务器,我想将事件发布到其中一个服务器(仅处理一次),在发布失败时故障转移到另一个服务器。

  • Spring Cloud Stream 每台服务器都有 1 个绑定(bind)器。
  • MQ 服务器配置了相同的交换和持久队列,但队列没有 HA 策略。

问题是:

  1. 实现此目的的最佳设计是什么?最好通过更改高级 Cloud Stream 配置,而不是深入研究 Spring AMQP。
  2. 如何连接异步发布及其结果?最好不要使其同步。覆盖一些bean?
  3. RabbitMQ HA 可以提供任何帮助吗?据我了解,整个持久队列仅存在于单个节点上以保留消息的顺序(实际上我不需要顺序)。那么如果我配置了 HA 并且具有持久 HA 队列的节点失败/停止,处理和发布将会崩溃?

最佳答案

  1. 请参阅启动文档:spring.rabbitmq.addresses= # 客户端应连接的以逗号分隔的地址列表。 连接工厂将自动进行故障转移。

  2. 如果您设置了生产者errorChannelEnabled,您将在错误 channel 中收到返回的消息;这需要一个为返回配置的连接工厂。目前没有获取异步肯定确认的机制,除非直接使用 Spring AMQP 来发布消息。

  3. 通过 HA,将为故障节点托管的队列选择一个新的主节点。当队列托管在一个节点上时,它会被复制到其他节点。

关于java - Spring Cloud 流: Republish to other amqp connection if current connection throws exception,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50274286/

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