|
|
1
1
如果计划使用seek(),请确保数据是等幂的。由于您有选择地提交偏移量,因此遗漏的记录可能在提交(成功处理)记录之前。如果您执行seek()-将GroupID的指针移动到未提交的偏移量并开始重播,那么您也将获得那些成功处理的消息。它也有可能成为一个无限循环。 或者,您可以将不成功记录的元数据保存在内存或数据库中,并从“poll(retention.ms)”开始重播主题,以便重播所有记录,但添加一个筛选器以仅处理那些通过api处理的记录,这些api的元数据与您之前保存的内容匹配。每小时或几个小时进行一次批处理。 |
|
|
2
1
提交偏移量只是存储消费者当前偏移量(也称为位置)的一种方法。因此,如果它停止,它(或者新的使用者实例接管)可以找到它以前的位置并从那里重新开始消费。 因此,即使你没有承诺,一旦你收到记录,消费者的位置就会移动。如果你想重新确认一些记录,你必须改变消费者的当前位置。
使用Java客户机,您可以使用
在您的场景中,您可能需要计算相对于当前位置的新位置。如果是这样的话,你可以用
|
|
|
user29759326 · 如何返回递归函数中的最后一个值? 1 年前 |
|
|
malife89 · 将java中的字符串读取为正确的日期格式 1 年前 |
|
|
Tim · 在java中,有没有更快的方法将字节数组写入文件? 1 年前 |
|
|
rudraraj · java中未声明最终变量 1 年前 |
|
|
Bala Ji · 以下BFS的实施效率如何? 1 年前 |