关于spoutConfig中maxOffsetBehind与startOffsetTime

来源:互联网 发布:火车头采集本地数据 编辑:程序博客网 时间:2024/05/17 22:30

startOffsetTime:

有两个值,分别是kafka.api.OffsetRequest.EarliestTime()和kafka.api.OffsetRequest.LatestTime()。分别表示从最早的offset读取与最近点offset读取。要注意的是这个参数只有设置启动的第一次消费有效,后面的消费是从zookeeper中记录的offset开始的。

maxOffsetBehind:

判断消费进度与目标进度相差多少,相差超过设定值会舍弃之前的记录。举个例子。此值设为5。startOffsetTime参数设为LatestTime,也就是消费最新的。这时,如果zookeeper中的offset进度为10,已消费到的offset进度如果为7.(也就是还有3个没有消费)。这时3<5,那么舍弃动作不会触发,启动时还会收到未消费的3个消息。如果已消费到的offset进度为3,(也就是还有7个没有被消费)。这时7>5,会触发舍弃动作。但是要注意的是,舍弃是全部舍弃,也就是7个一个都不会收到,直接等同于执行了LatestTime这个操作。启动后会发现没有收到任何消息。