kafka消费慢

kafka消费太慢
首先加多个patiction,多个消费组  
拉去多个,多个消费者消费

后续还是不行 以为是线程池被用完了,就单独起一个线程还是不行!!!

后续就用jstack看线程状态 jstack pid > stack.txt  dump线程状态      https://blog.csdn.net/liwenxia626/article/details/80791704
WAITING (parking)  bstractQueuedSynchronizer$ConditionObject)  
是数据库的连接池被占满了,所以加大连接池 datasource。hikari.maximum-pool-size: 100

kafka 
同一个Topic对应很多的分区,这topic消息,可以被很多组消费者消费,但是同一个topic下的某个分区,只能被一个消费者组当中的一个消费者消费!!!
分区0,被消费者1消费,同时还被消费者2消费 --> 这个就是错的
一个消费者组的一个消费者,可以消费一个topic下的多个分区
同一个topic下的某个分区,可以被多个消费者组,消费者消息

auto.offset.reset
earliest 当各分区下有已提交的offset时,从提交的offset开始消费;无提交的offset时,从头开始消费
latest 当各分区下有已提交的offset时,从提交的offset开始消费;无提交的offset时,消费新产生的该分区下的数据
none topic各分区都存在已提交的offset时,从offset后开始消费;只要有一个分区不存在已提交的offset,则抛出异常

enable.auto.commit 的默认值是 true;就是默认采用自动提交的机制。  问题就是消费失败也会提交,造成数据丢失  
enable.auto.commit=TRUE,则同一个消费者重启之后不会重复消费之前消费过的消息
auto.commit.interval.ms 的默认值是 5000,单位是毫秒。

max.poll.interval.ms 默认值是5分钟 如果在两次poll操作之间,超过了这个时间,那么就会认为这个consumer处理能力太弱了,会被踢出消费组,分区分配给别人去消费 
rebalance.timeout = max.poll.interval.ms
max.poll.records=1  默认500

指定消费区
consumer.assign(Arrays.asList(new TopicPartition(“kafka.wshare.match_meta_data.topic”,0))

session.timeout.ms:  kafka多长时间感知不到一个consumer就认为他故障了,默认是10秒 心跳
group.id  它们共享一个公共的group ID,组ID是一个字符串,用来唯一标志一个消费者组

多个分区  多线程消费 消费时间太长挂掉了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值