跳至主要內容
Spring Cloud Stream 系列(三)

分区

Spring Cloud Stream 提供对给定应用程序的多个实例之间的数据分区的支持。在分区场景中,物理通信介质(例如 Broker 的 Topic)被视为由多个分区组成。一个或多个生产者应用程序实例将数据发送到多个消费者应用程序实例,并确保以共同特征标识的数据由同一消费者实例处理。

Spring Cloud Stream 提供了一个通用抽象,用于以统一的方式实现分区处理用例。因此,无论 MQ 本身是否自然分区(如 Kafka)或不自然分区(如 RabbitMQ),都可以使用分区。

分区结构图

YUDI-Corgi原创Spring CloudMQSpring CloudMQ大约 11 分钟
Spring Cloud Stream 系列(二)

上篇主要讲了 Spring Cloud Stream 的基础用法以及对 RabbitMQ 的配置使用,但若只看这点,那么跟 Spring Boot 集成 MQ 的方式比起来并没有什么突出的地方。Spring Cloud Stream 强大之处是在于隐藏了各类 MQ 不同且(可能)繁琐的配置和代码操作,提供了统一的概念(Binder、Binding、Message)、配置(输入/输出绑定、生产/消费)、消息收发 API 以及函数定义,用一套做法就完成对不同 MQ 系统的使用。这听起来是不是很熟悉~~~?其实这就是门面(或外观)模式的体现,类似 SLF4J 日志、Spring 的 ApplicationContext 等,隐藏了背后依赖库、框架或其它对象的复杂实现,提供一个简单的门面接口来使用。


YUDI-Corgi原创Spring CloudMQSpring CloudMQ大约 11 分钟
Spring Cloud Stream 系列(一)

Spring Cloud Stream:是用于构建与共享消息传递系统连接的高度可扩展的事件驱动微服务,其提供一个灵活的编程模型,基于 Spring 习语来实现对各类常见的 MQ 系统的支持,如官方自己提供的 RabbitMQ Binder、Kafka Binder,还有其它 MQ 厂商自己提供的适配。其内部使用 Spring Integration 提供与 broker 的连接,并能够在同样的配置、代码下实现不同 MQ 产品的消息发布订阅、消费者组、持久化、分区等特性。


YUDI-Corgi原创Spring CloudMQSpring CloudMQ大约 14 分钟