Spring Cloud Streaming-生产者和消费者的独立连接;消费者
我有一个使用RabbitMQ的Spring云流式转换器应用程序。它从兔子队列中读取数据,进行一些转换,然后写入兔子交换。我将我的应用程序部署到PCF,并绑定到Rabbit服务Spring Cloud Streaming-生产者和消费者的独立连接;消费者,spring,spring-cloud-stream,spring-rabbit,Spring,Spring Cloud Stream,Spring Rabbit,我有一个使用RabbitMQ的Spring云流式转换器应用程序。它从兔子队列中读取数据,进行一些转换,然后写入兔子交换。我将我的应用程序部署到PCF,并绑定到Rabbit服务 这很好,但是现在我需要一个单独的连接来使用和生成消息。(我想使用一个连接从兔子队列中读取,并使用另一个连接写入兔子交换)。我将如何配置它?是否可以将我的应用程序绑定到2个不同的Rabbit服务,其中1个作为生产者,1个作为消费者?好吧,从版本1.3开始,Rabbit Binder确实为生产者创建了一个单独的连接工厂: 从1
这很好,但是现在我需要一个单独的连接来使用和生成消息。(我想使用一个连接从兔子队列中读取,并使用另一个连接写入兔子交换)。我将如何配置它?是否可以将我的应用程序绑定到2个不同的Rabbit服务,其中1个作为生产者,1个作为消费者?好吧,从版本
1.3开始,Rabbit Binder确实为生产者创建了一个单独的连接工厂
:
从1.3版开始,RabbitMessageChannelBinder
为非事务性生产者创建一个内部ConnectionFactory
副本,以避免消费者在共享时死锁,缓存连接因代理上的内存警报而被阻塞
所以,升级到Spring Cloud Stream Ditmars之后,这可能就足够了
更新
如何使用不同的连接属性配置此内部ConnectionFactory副本
不,那是不同的故事。您需要的是多活页夹支持:
您应该为不同的连接工厂声明几个块:
spring.cloud.stream.bindings.input.binder=rabbit1
spring.cloud.stream.bindings.output.binder=rabbit2
...
spring:
cloud:
stream:
bindings:
input:
destination: foo
binder: rabbit1
output:
destination: bar
binder: rabbit2
binders:
rabbit1:
type: rabbit
environment:
spring:
rabbitmq:
host: <host1>
rabbit2:
type: rabbit
environment:
spring:
rabbitmq:
host: <host2>
spring.cloud.stream.bindings.input.binder=rabbit1
spring.cloud.stream.bindings.output.binder=rabbit2
...
春天:
云:
流:
绑定:
输入:
目的地:富
活页夹:兔子1
输出:
目的地:酒吧
活页夹:兔子2
活页夹:
兔子1:
类型:兔
环境:
春天:
rabbitmq:
主持人:
兔子2:
类型:兔
环境:
春天:
rabbitmq:
主持人:
好吧,从版本1.3开始,Rabbit Binder确实为生产商创建了一个单独的连接工厂
:
从1.3版开始,RabbitMessageChannelBinder
为非事务性生产者创建一个内部ConnectionFactory
副本,以避免消费者在共享时死锁,缓存连接因代理上的内存警报而被阻塞
所以,升级到Spring Cloud Stream Ditmars之后,这可能就足够了
更新
如何使用不同的连接属性配置此内部ConnectionFactory副本
不,那是不同的故事。您需要的是多活页夹支持:
您应该为不同的连接工厂声明几个块:
spring.cloud.stream.bindings.input.binder=rabbit1
spring.cloud.stream.bindings.output.binder=rabbit2
...
spring:
cloud:
stream:
bindings:
input:
destination: foo
binder: rabbit1
output:
destination: bar
binder: rabbit2
binders:
rabbit1:
type: rabbit
environment:
spring:
rabbitmq:
host: <host1>
rabbit2:
type: rabbit
environment:
spring:
rabbitmq:
host: <host2>
spring.cloud.stream.bindings.input.binder=rabbit1
spring.cloud.stream.bindings.output.binder=rabbit2
...
春天:
云:
流:
绑定:
输入:
目的地:富
活页夹:兔子1
输出:
目的地:酒吧
活页夹:兔子2
活页夹:
兔子1:
类型:兔
环境:
春天:
rabbitmq:
主持人:
兔子2:
类型:兔
环境:
春天:
rabbitmq:
主持人:
如何使用不同的连接属性配置此内部ConnectionFactory副本?如何使用不同的连接属性配置此内部ConnectionFactory副本?