【背景】 我们团队在搭建订单系统时,面对 Kafka 分区策略选择陷入两难:
- 均匀分区(round-robin)能平衡负载,但会导致同一业务键的消息分散到不同分区,影响消费顺序性
- 按业务键分区(如订单ID)能保证顺序性,但可能引发分区热点,导致消费延迟
【常见分歧】
- 技术团队倾向按业务键分区,认为顺序性更重要
- 运维团队主张均匀分区,担心热点导致扩容困难
- 业务方要求保证交易消息的严格顺序
【我的倾向】 目前我们采用折中方案:
- 核心交易消息按订单ID分区
- 日志类消息使用均匀分区
- 非关键业务消息设置分区数为CPU核数的2倍
【想听大家】
- 你们遇到过哪些分区策略导致的踩坑案例?
- 在流量突增时,如何动态调整分区数?
- 是否尝试过混合分区策略?效果如何?
0赞
0收藏
0楼层