漏消费和重复消费
重复消费:已经消费了数据,但是offset没提交。
漏消费:先提交offset后消费,有可能会造成数据得漏消费
消费者事务
如果向完成consumer端得进准一次性消费,那么需要Kafka消费端将消费过程和提交offset过程做原子绑定。此时我们需要将kafka的offset保存到支持事务的自定义介质(比如MySQL),这部分只是会在后续项目部分涉及
数据积压(消费者如何提高吞吐量)
1)如果Kafka消费能力不足,则可以考虑增加topic的分区数,并且同时提升消费组的消费者数量,消费者数=分区数。
2)如果时下游处理不及时,提高每批次拉取的数量,批次拉数据过少(拉取数据/处理时间<生产速度)使处理的数据小于生产数据,也会造成数据挤压。
参数名称 | 描述 |
---|---|
fetch.max.bytes | 默认Default: 52428800(50 m)消费者获取服务端一批消息最大的字节数。如果服务器端一批次的数据大于该值(50m)仍然可以拉取回来这批数据,因此,这不是一个绝对最大值。一批次的大小受message.max.bytes(broker config) or max.message.bytes(topic config)影响 |
max.poll.records | 一次poll拉取数据返回消息最大条数,默认时500条 |