2020-08-31

Kafka 如何保证消息顺序消费、在consumer group 中新增一个consumer 会提高消费消息的速度吗、那如果我想提高消息消费的速度,我要怎么办?

消息重复和消息积压。
一定要保证消费端的消费性能要高于生产端的发送性能,这样的系统才能健康的持续运行。

消费端的性能除了优化消费业务逻辑外,也可以通过水平扩展,增加消费端的并发数来提升总体的消费性能。

特别注意的是,在扩容Consumer的实例数量的同时,必须同步扩容主题中的分区(队列)的数量。确保Consumer的实例数和分区数量是相等的。如果Consumer的数量超过分区数量,这样的扩容效果是没有效果的,原因是对于消费者来说,每个分区上实际只能支持单线程消费。

业务上允许的话可以通过批量消费的方式来提高性能。
场景要求: 1 消费端对消息的处理支持批量处理,比如批量入库。2 消费端支持多线程协程并发处理,业务上允许消息无序。3 网络带宽在考虑因素内,需要减少消息的overhead。

局限性: 1 需要一个整体的ack机制,一旦一条靠前的消息消费失败,可能引起很多消息重试。
2 多线程下批量消费速度受限于最慢的那个线程。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值