Rabbitmq Spring AMQP到Spring云流迁移-现有队列

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

我正在尝试将SpringCloudStream添加到使用SpringAMQP和RabbitMQ的现有项目中

我有以下兔子配置:

制作人交换名称:
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
。他打开门。添加您的声音以提高优先级。