在AWS Kinesis的正式文档中,我找不到TRIM_HORIZON和检查点之间的显式引用,也找不到LATEST和检查点之间的任何引用。
你能证实我的理论吗:
TRIM_HORIZON -如果应用程序名是新的,那么我将读取流中的所有可用记录。否则,应用程序名称已经被使用,然后我将从读取我的上一个检查点。LATEST -如果应用程序名是新的,那么我将读取流中的所有记录,其中添加了之后的订阅了该流。否则,应用程序名称已经被使用,我将读取来自我的上一个检查点的消息。TRIM_HORIZON 和 LATEST 之间的区别才会出现。发布于 2019-04-24 13:15:49
AT_TIMESTAMP
-来自特定的时间戳
TRIM_HORIZON
-从一开始(卡夫卡最早的)所有可用的动态流中的信息
最新
-来自最新的信息,即刚进入Kinesis/Kafka的当前消息和从那个时候传入的所有文字信息
发布于 2018-04-09 14:02:04
来自GetShardIterator文档 (它与我使用Kinesis的经验相一致):
在请求中,您可以指定切分迭代器类型
AT_TIMESTAMP从任意时间点读取记录,TRIM_HORIZON指定ShardIterator指向系统中碎片中最后一个未修剪的记录(碎片中最古老的数据记录),或者LATEST,以便始终读取碎片中的最新数据。
基本上,区别在于您是想从最老的记录(TRIM_HORIZON)开始,还是从“立即”开始(LATEST -跳过最新检查点和当前之间的数据)。
发布于 2021-05-06 23:38:09
问题很清楚地询问了这些选项与检查站之间的关系。然而,现有的答案中没有一个是针对检查点的。
贾斯汀·菲弗( Justin )对这一问题的权威回答出现在“纽约时报”( GitHub )杂志这里上。
最相关的部分是
KCL将始终使用租赁表中的值,如果它是存在的。,重要的是要记住,Kinesis本身并不跟踪消费者的位置。跟踪由租约表提供。租赁在KCL服务器的双重责任。它们既提供互斥,也提供位置跟踪。因此,对于互斥,需要创建租约,并且为了满足位置跟踪,必须选择初始值。
(强调是我加的。)
https://stackoverflow.com/questions/49728807
复制相似问题