Rabbitmq Spring AMQP到Spring云流迁移-现有队列
我正在尝试将SpringCloudStream添加到使用SpringAMQP和RabbitMQ的现有项目中 我有以下兔子配置: 制作人交换名称:Rabbitmq Spring AMQP到Spring云流迁移-现有队列,rabbitmq,spring-cloud-stream,Rabbitmq,Spring Cloud Stream,我正在尝试将SpringCloudStream添加到使用SpringAMQP和RabbitMQ的现有项目中 我有以下兔子配置: 制作人交换名称:Producer.mail sent.exchange 消费者队列名称:Consumer.mail-sent.queue 在生产者方面,我的配置如下: 春天: 云: 流: 绑定: 输出: contentType:application/json 目的地:producer.mail-sent.exchange 并使用以下代码: @Autowired p
Producer.mail sent.exchange
消费者队列名称:Consumer.mail-sent.queue
在生产者方面,我的配置如下:
春天:
云:
流:
绑定:
输出:
contentType:application/json
目的地:producer.mail-sent.exchange
并使用以下代码:
@Autowired
private Source source;
...
source.output().send(MessageBuilder.withPayload(someStuff).build());
...
@EnableBinding(Sink.class)
...
@StreamListener(Sink.INPUT)
public void handle(String someStuff) {
log.info("some stuff is received: " + someStuff);
}
在消费者方面,我有以下配置:
春天:
云:
流:
绑定:
输入:
contentType:application/json
目的地:producer.mail-sent.exchange
组:consumer.mail-sent.queue
使用以下代码:
@Autowired
private Source source;
...
source.output().send(MessageBuilder.withPayload(someStuff).build());
...
@EnableBinding(Sink.class)
...
@StreamListener(Sink.INPUT)
public void handle(String someStuff) {
log.info("some stuff is received: " + someStuff);
}
而且它似乎是有效的
但是在兔子方面,我有一个名为producer.mail sent.exchange.consumer.mail sent.queue
的新队列,但我希望它使用名为consumer.mail sent.queue
的现有队列
有没有办法做到这一点?目前不支持;虽然许多属性是可配置的(路由键等),但队列名称始终为
如果您想从现有的应用程序中消费,请考虑使用<代码> @ RabBistListNe/Cult>,而不是<代码> @ StreamListener < /> >
请随意打开一个引用本文的页面-许多其他“自以为是”的配置设置(如路由键)是可配置的,但队列名称本身不是。也许我们可以添加一个布尔
includeDestInQueueName
。请参考本期中的此问题。Ok:)谢谢您的快速回复!我们也面临同样的问题。我们有现有的rabbitmq群集,希望为现有群集创建一个消费者客户端(fanout)。您是否建议不对现有rabbitmq群集使用Spring cloud stream?我们计划使用cloud stream创建通用客户端,因为明年我们必须迁移到Kinesis;它只是今天不在那里;正如我向OP建议的,打开GitHub问题以请求增强是第一步。您可以从一个@RabbitListener
开始,并在该功能可用时将其切换到@StreamListener
。他打开门。添加您的声音以提高优先级。