首页 > 其他分享 >kafka如何处理大量积压消息

kafka如何处理大量积压消息

时间:2022-12-28 18:33:29浏览次数:44  
标签:消费 积压 处理 分区 Kafka 消息 kafka

1.consumer导致kafka积压了大量消息

方法:
1.增大partion数量,
2.消费者加了并发,服务, 扩大消费线程
3.增加消费组服务数量
4.kafka单机升级成了集群
5.避免消费者消费消息时间过长,导致超时
6.使Kafka分区之间的数据均匀分布
 
场景:
1.如果是Kafka消费能力不足,则可以考虑增加 topic 的 partition 的个数,
同时提升消费者组的消费者数量,消费数 = 分区数 (二者缺一不可)
 
2.若是下游数据处理不及时,则提高每批次拉取的数量。批次拉取数量过少
(拉取数据/处理时间 < 生产速度),使处理的数据小于生产的数据,也会造成数据积压。

2.消息过期失效

产生消息堆积,消费不及时,kafka数据有过期时间,一些数据就丢失了,主要是消费不及时
 
经验
1.消费kafka消息时,应该尽量减少每次消费时间,可通过减少调用三方接口、读库等操作,
  从而减少消息堆积的可能性。
2.如果消息来不及消费,可以先存在数据库中,然后逐条消费
  (还可以保存消费记录,方便定位问题)
3.每次接受kafka消息时,先打印出日志,包括消息产生的时间戳。
4.kafka消息保留时间(修改kafka配置文件, 默认一周)
5.任务启动从上次提交offset处开始消费处理

3.综上使用kafka注意事项

1.由于Kafka消息key设置,在Kafka producer处,给key加随机后缀,使其均衡 
2.数据量很大,合理的增加Kafka分区数是关键。
  Kafka分区数是Kafka并行度调优的最小单元,如果Kafka分区数设置的太少,
  会影响Kafka consumer消费的吞吐量. 如果利用的是Spark流和Kafka direct approach方式,
  也可以对KafkaRDD进行repartition重分区,增加并行度处理。

标签:消费,积压,处理,分区,Kafka,消息,kafka
From: https://www.cnblogs.com/even160941/p/17010989.html

相关文章