【问题标题】:Can I use spring.cloud.stream.bindings.<channel>.group when using RabbitMQ to obtain exactly-once delivery?使用 RabbitMQ 时是否可以使用 spring.cloud.stream.bindings.<channel>.group 来获得一次性交付?
【发布时间】:2019-07-06 15:34:28
【问题描述】:

所以我正在阅读这个tutorial 来配置 RabbitMQ 和 SpringBoot。

在某一点上说:

大多数时候,我们只需要处理一次消息。 Spring Cloud Stream 通过消费者组实现此行为。

所以我开始寻找有关Spring docs 的更多信息,上面写着:

这样做时,应用程序的不同实例被放置在一个 竞争消费者关系,其中只有一个实例是 期望处理给定的消息。

Spring Cloud Stream 通过 a 的概念对这种行为进行建模 消费群体。 (Spring Cloud Stream 消费组类似于 并受到 Kafka 消费者群体的启发。)

所以我使用 Spring Boot Cloud Stream 和 RabbitMQ 设置了 here 两个节点,并使用了 spring.cloud.stream.bindings.&lt;channel&gt;.group

在我看来,这仍然是至少一次的行为。我的假设错了吗?即使使用spring.cloud.stream.bindings.&lt;channel&gt;.group,我是否仍然可以处理两次消息?

谢谢

【问题讨论】:

    标签: java spring spring-boot rabbitmq spring-cloud-stream


    【解决方案1】:

    至少有一次。在发送 ack 之前,连接可能会关闭。罕见,但可能。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-01-11
      • 1970-01-01
      • 2019-09-20
      • 2013-02-02
      • 1970-01-01
      • 2019-03-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多