使用 Spring Integration 和 AMQP,我可以创建竞争消费者的 Pub-Sub 组吗?
Posted
技术标签:
【中文标题】使用 Spring Integration 和 AMQP,我可以创建竞争消费者的 Pub-Sub 组吗?【英文标题】:Using Spring Integration and AMQP, can I create Pub-Sub groups of Competing Consumers? 【发布时间】:2015-02-17 14:14:49 【问题描述】:我想创建一个如下图所示的设置:
这可以通过 Spring Integration 对 AMQP 的支持来完成吗? IE。图中的通信通道可以是AMQP吗?目标是:
-
图片中的每个组件都可以是一个单独的服务器。
我可以扩大每个消费者群体。
每个消费者组中只有一名工作人员处理消息。
每个消费者组都会收到每条消息。
我查看了documentation,但不确定 SI 提供的两个 AMQP 消息通道实现(点对点和发布/订阅)是否可以解决问题。特别是,点对点通道是否会像常规直接通道一样工作,即支持多个端点,每条消息只有一个端点接收?
非常感谢!
【问题讨论】:
【参考方案1】:用发布到 fanout
交换的出站通道适配器替换 pub-sub 通道。
将 2 个队列绑定到扇出交换;每个人都会得到消息的副本。
为您的每个消费者使用入站通道适配器,每个消费者都侦听相应的队列;两组消费者将竞争他们的消息。
【讨论】:
以上是关于使用 Spring Integration 和 AMQP,我可以创建竞争消费者的 Pub-Sub 组吗?的主要内容,如果未能解决你的问题,请参考以下文章
集成框架Spring Integration, Mule ESB or Apache Camel比较
使用 spring-integration-dsl 的动态 http 入站网关
Spring Kafka 和 Spring Integration Kafka 的区别
我在这里使用 Struts 2 和 Spring Security Integration