kafka 集群,有 3 台机器,01 、02 、03 持续处理消息一小时后,只有 01 机器 kafka-logs 目录在持续增长,另外两台机器却无变化,但是运行是正常的,请问这是正常的吗? 昨晚压测过程中,01 机器磁盘撑满宕机了,整个 kafka 集群就都不消费了,这种该如何处理,请大佬指教
1
Shawns 2023-10-09 09:42:50 +08:00
估计 topic 没做分区或者分区不均
|
2
la2la 2023-10-09 09:49:28 +08:00
1. 检查一下 Topic 分区分布
2. 设置合理的 Topic 过期方式 |
3
someday3 2023-10-09 11:00:21 +08:00
先检查一楼提的,然后把结果补充上来再讨论。
|
4
ITdream OP @Shawns 总共 6 个消费者,每个消费者线程数为 spring.kafka.consumer.concurrency = 5 ,分区设置 num.partitions=30 ,代码配置如下
@KafkaListener( groupId = "${spring.application.name}", topics = Queue.Topic.PROPERTY_REPORT, concurrency = "#{'${spring.kafka.consumer.concurrency:1}'}", batch = "true") |
5
ITdream OP @la2la 之前是 1 小时清理数据,现在改成 15 分钟清理,但未生效,配置如下
log.retention.minutes=15 log.segment.bytes=1073741824 log.cleaner.delete.retention.ms=300000 log.cleaner.backoff.ms=300000 |
6
Shawns 2023-10-09 14:34:45 +08:00
@ITdream 和消费端没啥关系。要看 topic 创建时参数或者系统配置。你是开发吧,如果是你们自己搞的集群,看下官方文档或者搜索最佳实践,不是你们搞的,找交付的人看下。
|
7
mingxulin 2023-10-09 14:38:56 +08:00 via iPhone
生产者写入数据不均,让研发一下数据写入策略
|
8
mingxulin 2023-10-09 14:42:34 +08:00 via iPhone
如果不想解决数据写入不均的情况,可以设置 delete.retention.ms
|