分布式消息服务Kafka

消费位点重置

2024-05-08 08:57:12

发生消费位点重置的两种情况

(1)当服务端不存在曾经提交过的位点时(比如客户端第一次上线)

(2)当从非法位点拉取消息时(比如某个分区最大位点是10,但客户端却从11开始拉取消息)

配置重置策略

Java 客户端可以通过auto.offset.reset来配置重置策略,主要策略有:

(1)latest:从最大位点开始消费

(2)earliest:从最小位点开始消费

(3)none:不做任何操作,也即不重置

策略配置建议

(1)强烈建议设置成“latest”,而不要设置成“earliest”,避免因位点非法时从头开始消费,从而造成大量重复

(2)如果是客户自己管理位点,可以设置成”none”

(3)拉取大消息

拉取消息注意事项

消费过程是由客户端主动去服务端拉取消息的,在拉取大消息时,需要注意控制拉取速度,注意修改配置。

(1)max.poll.records:如果单条消息超过1MB,建议这里设置为1。

(2)fetch.max.bytes:设置比单条消息的大小略大一点。

(2)max.partition.fetch.bytes:设置比单条消息的大小略大一点。

拉取大消息的核心是一条一条拉。


SAE5j.8Or9BF