spring-integration - 使用 Spring Integration 和 AMQP,我可以创建竞争消费者的 Pub-Sub 组吗?

标签 spring-integration amqp enterprise-integration

我想创建如下图所示的设置:

enter image description here

这可以通过 Spring Integration 对 AMQP 的支持来完成吗? IE。图中的通信 channel 可以是AMQP吗?目标是:

  1. 图中的每个组件都可以是一个单独的服务器。
  2. 我可以扩大每个消费者群体的规模。
  3. 每个消费者组中只有一名工作人员处理该消息。
  4. 每个消费者组都会收到每条消息。

我查看了documentation ,但不确定 SI 提供的两个 AMQP 消息 channel 实现(点对点和发布/订阅)是否可以解决问题。特别是,点对点 channel 是否像常规直接 channel 一样工作,即支持多个端点,只有其中一个端点接收每条消息?

非常感谢!

最佳答案

将 pub-sub channel 替换为发布到 fanout 交换的出站 channel 适配器。

将2个队列绑定(bind)到扇出交换器;每个人都会得到一份消息的副本。

为每个消费者使用入站 channel 适配器,每个消费者监听适当的队列;两组消费者将争夺他们的消息。

关于spring-integration - 使用 Spring Integration 和 AMQP,我可以创建竞争消费者的 Pub-Sub 组吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27552565/

相关文章:

java - Spring集成使异步网关等待聚合结果

java - FileInboundAdapter - 在运行时设置新触发器

spring retry 找到最后一次重试

go - 从 rabbitmq 获取已发布消息的响应。戈朗

java - 在 apache Camel 中创建路由的最佳方法

java - 如何在 spring boot 中创建一个 Tcp 连接来接受连接?

java - ActiveMQ是否支持消费者的最大消息处理时间

parallel-processing - 如何在 Spring Integration 中运行并行聚合器?

java - Apache Camel 拦截,更新所有 RouteBuilder 的 Exchange 消息,然后继续

sockets - TCP 连接的 Recv-Q 高的原因是什么?