SpringCloud中Stream分区分组的原理是什么

这篇文章给大家介绍Spring Cloud 中Stream分区分组的原理是什么,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

创新互联公司服务项目包括山亭网站建设、山亭网站制作、山亭网页制作以及山亭网络营销策划等。多年来,我们专注于互联网行业,利用自身积累的技术优势、行业经验、深度合作伙伴关系等,向广大中小型企业、政府机构等提供互联网行业的解决方案,山亭网站推广取得了明显的社会效益与经济效益。目前,我们服务的客户以成都为中心已经辐射到山亭省份的部分城市,未来相信会继续扩大服务区域并继续获得客户的支持与信任!

消息分组

通常在生产环境,我们的每个服务都不会以单节点的方式运行在生产环境,当同一个服务启动多个实例的时候,这些实例都会绑定到同一个消息通道的目标主题(Topic)上。默认情况下,当生产者发出一条消息到绑定通道上,这条消息会产生多个副本被每个消费者实例接收和处理,但是有些业务场景之下,我们希望生产者产生的消息只被其中一个实例消费,这个时候我们需要为这些消费者设置消费组来实现这样的功能。

Spring Cloud 中Stream分区分组的原理是什么

当把消费者复制一份,发现2个都能收到消息

Spring Cloud 中Stream分区分组的原理是什么

2个消费者都加入同一个消费者

Spring Cloud 中Stream分区分组的原理是什么

发现只有一个能收到

Spring Cloud 中Stream分区分组的原理是什么

消息分区

有一些场景需要满足, 同一个特征的数据被同一个实例消费, 比如同一个id的传感器监测数据必须被同一
个实例统计计算分析, 否则可能无法获取全部的数据。又比如部分异步任务,首次请求启动task,二次
请求取消task,此场景就必须保证两次请求至同一实例.

Spring Cloud 中Stream分区分组的原理是什么

Spring Cloud 中Stream分区分组的原理是什么

Spring Cloud 中Stream分区分组的原理是什么

Spring Cloud 中Stream分区分组的原理是什么

从上面的配置中,我们可以看到增加了这两个参数:

1. pring.cloud.stream.bindings.output.producer.partitionKeyExpression :通过该参数指定了分区键的表达式规则,我们可以根据实际的输出消息规则来配置SpEL来生成合适的分区键;

2. spring.cloud.stream.bindings.output.producer.partitionCount :该参数指定了消息分
区的数量。

关于Spring Cloud 中Stream分区分组的原理是什么就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。


分享名称:SpringCloud中Stream分区分组的原理是什么
URL地址:http://ybzwz.com/article/ijhcjc.html