Kafka是否适用于百万级消费者的消息扇出场景?
Kafka是否适用于百万级消费者的扇出场景?
业务场景需求
- 不同消费者需获取相同的消息副本
- 新加入的消费者仅需获取10分钟内的数据(无需接收数天前历史数据)
- 计划设置消息留存时间为10分钟,所有消费者使用
assign()而非subscribe()
具体场景细节
百万级消费者 每个消费者需获取最新消息副本,若能从加入时回溯10分钟的消息更佳→所有消费者不能处于同一consumer group 现有消费者频繁断开并重新连接 新消费者频繁加入
核心疑问
- Kafka是否适用于该场景?
- 若Kafka无法支持百万级消费者扇出,其最大支持的扇出量是多少?
- 使用RabbitMQ的fanout exchange或Google Pub/Sub这类托管服务,是否是更优选择?
潜在瓶颈分析
1. 分区并行度瓶颈
Kafka的并行度由分区(partitions)定义,每个分区需向百万级消费者发送数据,这是否是无法扩展的瓶颈?
2. 偏移量管理瓶颈
百万级消费者意味着百万级偏移量,以及百万级并发提交。Kafka能较好支持数百个消费者并发提交,但每个消费者是顺序提交(如消费者1依次提交消息1、2、3…),那么Kafka(或ZooKeeper)能否处理百万级并发提交?若不需要至少一次或至多一次的交付保障,能否关闭提交,始终从最新偏移量拉取消息?
内容的提问来源于stack exchange,提问作者olaf
相关产品推荐
相关产品推荐

