我想将Spring云流添加到使用Spring AMQP和RabbitMQ的现有项目。春季AMQP春季云流迁移 - 现有队列
我有以下兔配置:
监制交换名称:producer.mail-sent.exchange
消费者队列名称:consumer.mail-sent.queue
在制片人的身边,我配置是这样的: spring: cloud: stream: bindings: output: contentType: application/json destination: producer.mail-sent.exchange
而且使用以下代码:
@Autowired
private Source source;
...
source.output().send(MessageBuilder.withPayload(someStuff).build());
...
在消费者的身边,我有以下配置: spring: cloud: stream: bindings: input: contentType: application/json destination: producer.mail-sent.exchange group: consumer.mail-sent.queue
用下面的代码:
@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
的现有队列。
有什么办法可以达到这个目的吗?
好:)感谢您的快速响应! – fightlight
我们也面临同样的问题。我们有现有的rabbitmq集群,并希望为现有集群(扇出)创建一个客户端客户端。您是否建议不要将Spring云流用于现有rabbitmq集群?我们计划在下一年使用云流创建通用客户端,因此我们必须迁移到Kinesis。 – user2589228
要为队列的完整自定义命名添加支持并不困难;这只是今天不存在;正如我向OP提议的那样,打开一个GitHub问题来请求增强是第一步。当功能可用时,您可以从一个'@ RabbitListener'开始并将其切换到'@StreamListener'。他打开[这个问题](https://github.com/spring-cloud/spring-cloud-stream-binder-rabbit/issues/93)。添加您的声音以提高优先级。 –