使用 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

如何使用 Spring Integration 发送 gcm xmpp 消息?

使用 Spring Integration HttpInbound 示例