SpringCloud微服务 Stream集成RabbitMQ(二)

前言

本小结学习一下Spring Cloud Stream 集成 Rabbit MQ 并实现业务场景中的消息分组与消息确认。
在实现应用案例之前,我们先来了解一下一个经典的RabbitMQ的工作流程和一些特殊的业务场景:

  • RabbitMQ经典工作流程
    在这里插入图片描述

  • 业务场景

    • 一般业务场景
      Rabbit MQ比较常用的业务场景就是在使用生产者/消费者模式来实现通信时,生产者与消费者的实例都为唯一且一一对应时,我们便可以不用考虑消息分组且不被多个实例重复消费。

    • 特殊业务场景
      在一些较为复杂的分布式系统中,生产者对应着多个消费者,且一组消费者又有多个实例,此时我们将必须格外注意消费不被重复消费的问题,而且事实上在这样的业务场景中我们也应当务必做到一条消息只能被某组消费者的某个实例消费,其他的实例无法重复消费该消息。

      正如上图所示,对于Channel Queue-I 而言它有两个消费组分别无Consume-I-I和Consume-I-II,同时这两个消费组又同时拥有各自的多个实例即Instance-I-I-I、Instance-I-I-II和Instance-I-II-I、Instance-I-II-II。生产者发送一条消息如何才能被以上4个实例中的一个监听且被消费掉并且保证该消息不会被重复消费掉呢?

      要想解决某个消息不被重复消费,则需要使用Spring Cloud Stream 在集成Rabbit MQ时提供的消息分组和分布式缓存结合使用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值