博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java B2B2C多用户商城 springcloud架构-Stream分区支持
阅读量:6854 次
发布时间:2019-06-26

本文共 1089 字,大约阅读时间需要 3 分钟。

首先,你要放空你之前kafka分区的相关知识,从零开始去领会Stream分区,以免造成理解上的困扰。

需要JAVA Spring Cloud大型企业分布式微服务云构建的B2B2C电子商务平台源码 一零三八七七四六二六

Stream提供了一个通用的抽象,用于统一方式进行分区处理,和具体使用的中间件无关,因此分区可以用于自带分区的代理(如kafka)或者不带分区的代理(如rabbiemq),这句话要反复读几遍。

Stream支持在一个应用程序的多个实例之间数据分区,N个生产者的数据会发送给M个消费者,并保证共同的特性的数据由相同的消费者实例处理,这会提升你处理能力。

Stream使用多实例进行分区数据处理是一个复杂设置,分区功能需要在生产者与消费者两端配置,SpringCloudDataFlow可以显著的简化过程,而且当你没有用SpringCloudDataFlow时,会给你的配置带来一些不便,需要你提前规划好,而不能再应用启动后动态追加。

下面是生产者有效的和典型的配置(Output Bindings)

spring.cloud.stream.bindings.
.producer.partitionKeyExpression=payload.idspring.cloud.stream.bindings.
.producer.partitionCount=5复制代码

分区key的值是基于partitionKeyExpression计算得出的,用于每个消息被发送至对应分区的输出channel,partitionKeyExpression是spirng EL表达式用以提取分区键

下面是消费者有效的和典型的配置(Input Bindings)

spring.cloud.stream.bindings.input.consumer.partitioned=truespring.cloud.stream.instanceIndex=3spring.cloud.stream.instanceCount=5复制代码

instanceCount表示应用实例的总数,instanceIndex在多个实例中必须唯一,并介于0~(instanceCount-1)之间。实例的索引可以帮助每个实例确定唯一的接收数据的分区,正确的设置这两个值十分重要,用来确保所有的数据被消费,以及应用实例接收相互排斥不重复消费。

转载于:https://juejin.im/post/5c47c4b0f265da6175741046

你可能感兴趣的文章
Cocos2d-x游戏引擎
查看>>
mysqldump导入导出mysql数据库
查看>>
FreeBSD挂载光驱和u盘
查看>>
xcode 代码风格设置 左花括号问题
查看>>
我的友情链接
查看>>
2012英语快速阅读方法总结
查看>>
xampp本地mysql环境phpmyadmin中文正常但是程序读取时中文问号的解决方法
查看>>
绕过360安全卫士写自启动项
查看>>
Ext 中的checkGroup实现的全选与反选功能
查看>>
一分钟了解spring之FactoryBean
查看>>
ThinkPHP集成腾讯云存储(COS)--详解
查看>>
8086寄存器
查看>>
功能实现:spring cloud config配置中心自定义存储方式
查看>>
docker compose VS docker stack
查看>>
【openssl】openssl 升级到1.0.1g
查看>>
我的友情链接
查看>>
关于×××在DEBUG过程中可能出现的问题
查看>>
深入理解HTTP协议
查看>>
【数据恢复软件】360有个功能叫文件恢复,亲测好使
查看>>
mongod 启动
查看>>