![](/img/trans.png)
[英]How to configure spring boot to bind a supplier to a rabbitmq queue with spring-cloud-stream and rabbit-binder?
[英]How to configure multiple consumers to a single destination queue in spring cloud stream SQS binder
我的应用程序正在接收两个具有不同负载的事件。 所以我为每个事件写了两个不同的消费者。
消费者1:
@Bean
public Consumer<TestEvent1> testEvent1() {
// my consumer logic
}
消费者2:
@Bean
public Consumer<TestEvent2> testEvent2() {
// my consumer logic
}
以下是spring云stream的配置:
spring:
cloud:
stream:
sqs:
bindings:
testEvent1-in-0:
consumer:
snsFanout: true
messageDeletionPolicy: ON_SUCCESS
waitTimeout: 20
maxNumberOfMessages: 10
visibilityTimeout: 30
testEvent2-in-0:
consumer:
snsFanout: true
messageDeletionPolicy: ON_SUCCESS
waitTimeout: 20
maxNumberOfMessages: 10
visibilityTimeout: 30
bindings:
testEvent1-in-0:
destination: events-queue
testEvent2-in-0:
destination: events-queue
default-binder: sqs
但是使用上述配置,两个消费者都无法正常工作。 如果我删除任何一个消费者,另一个正在工作。
我怎样才能配置云 stream 以便两个消费者都将根据生成的事件有效负载工作。
当你有多个功能时,你需要告诉框架哪些需要被激活。 当应用程序中只有一个 function 时,Spring 云 Stream 将简单地激活那个。 这就是当您删除一个消费者时它起作用的原因。 您可以使用以下配置来激活两个消费者。
spring.cloud.function.definition: testEvent1;testEvent2
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.