gpt4 book ai didi

amazon-web-services - aws kinesis 迭代器过期后如何刷新?

转载 作者:行者123 更新时间:2023-12-04 17:47:55 25 4
gpt4 key购买 nike

在我的 spring boot(1.5.7) 应用程序中,我使用 camel 运动组件从运动流中读取数据。我已将迭代器类型设置为“最新”,如下所示

@Override
public void configure() throws Exception {
from("aws-kinesis://"+stream+"?amazonKinesisClient=#awsClient&iteratorType="LATEST")
.bean(Settlement.class, "transform")
.to("log:out");

}

从运动流连续读取时没有任何问题。但是当由于处理时的错误而导致处理消息有一些延迟时,如果延迟间隔超过 5 分钟,我会收到 ExpiredIteratorException 错误,如下所示

om.amazonaws.services.kinesis.model.ExpiredIteratorException: Iterator expired. The iterator was created at time Mon Nov 27 15:30:29 UTC 2017 while right now it is Mon Nov 27 15:36:13 UTC 2017 which is further in the future than the tolerated delay of 300000 milliseconds. (Service: AmazonKinesis; Status Code: 400; Error Code: ExpiredIteratorException; Request ID: c655b6d8-58f4-c087-94c3-85f5e7cfdd03)

我已经尝试在 camel 版本 2.20.1 和 2.20.0 中使用它。有没有办法刷新迭代器?或任何其他更好的解决方案来解决这个问题,这样我就可以阅读流中可用的下一条消息。

最佳答案

您可以使用subscribe_to_shard提供ConsumerARNShardIdpositionsequence number 作为迭代器在 300000 毫秒后过期时再次重新连接到分片的参数。

[aws 文档]:https://docs.aws.amazon.com/kinesis/latest/APIReference/API_SubscribeToShard.html

关于amazon-web-services - aws kinesis 迭代器过期后如何刷新?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47515303/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com