我正在寻找一种方法,在使用spring云流的交换中声明一个备用交换。我们使用3.2.2,而这种方向性不存在。
当生产者在接收方创建队列之前发送其第一条消息时,将使用它。生产者必须在交换上声明一个备用交换和一个与交换相关的队列,以检索尚未路由到现有队列的消息。
有大量与交替交换相关的应用程序,这些应用程序现在看来不是由spring云流库解决的。https://www.rabbitmq.com/ae.html
谢谢
发布于 2022-07-01 15:28:50
我认为这与无关。
根据RabbitMQ文档,我们只需在客户端完成:
Map<String, Object> args = new HashMap<String, Object>();
args.put("alternate-exchange", "my-ae");
channel.exchangeDeclare("my-direct", "direct", false, false, args);
channel.exchangeDeclare("my-ae", "fanout");
channel.queueDeclare("routed");
channel.queueBind("routed", "my-direct", "key1");
channel.queueDeclare("unrouted");
channel.queueBind("unrouted", "my-ae", "");所以,从技术上讲,您只需根据Spring:https://docs.spring.io/spring-amqp/docs/current/reference/html/#broker-configuration声明各自的bean
或者,正如docs所指出的:使用代理上的策略来为这个备用交换功能修改一个交换。
如果您仍然在一些高级API中看到这方面的值,那么可以针对Spring项目提出一个GH问题:https://github.com/spring-projects/spring-amqp/issues。
或者在Stream中,如果您发现现有的Spring功能足够,但仍然认为Stream目的地提供程序可以通过一些额外的属性来改进:https://github.com/spring-cloud/spring-cloud-stream
https://stackoverflow.com/questions/72829098
复制相似问题