消費位點重置
更新時間 2023-05-13 17:37:30
最近更新時間: 2023-05-13 17:37:30
分享文章
發生消費位點重置的兩種情況
- 當服務端不存在曾經提交過的位點時(比如客戶端第一次上線);
- 當從非法位點拉取消息時(比如某個分區最大位點是10,但客戶端卻從11開始拉取消息)。
配置重置策略
Java 客戶端可以通過auto.offset.reset來配置重置策略,主要策略有:
- latest:從最大位點開始消費;
- earliest:從最小位點開始消費;
- none:不做任何操作,也即不重置。
策略配置建議
- 強烈建議設置成“latest”,而不要設置成“earliest”,避免因位點非法時從頭開始消費,從而造成大量重復
- 如果是客戶自己管理位點,可以設置成”none”;
- 拉取大消息。
拉取消息注意事項
消費過程是由客戶端主動去服務端拉取消息的,在拉取大消息時,需要注意控制拉取速度,注意修改配置。
- max.poll.records:如果單條消息超過1MB,建議這里設置為1;
- fetch.max.bytes:設置比單條消息的大小略大一點;
- max.partition.fetch.bytes:設置比單條消息的大小略大一點。拉取大消息的核心是一條一條拉。