我在aws官方文档中找不到任何关于aws lambda从aws msk(managed kafka)用于消息消费的确认模型的信息。aws lambda如何确认来自aws msk的Kafka消息?是否可以对其进行配置(自动确认与手动确认)?
cbwuti441#
Kafka的确认模型将是相同的,无论你是否使用msk或其他东西-因此,你没有找到任何关于aws文件。你的消费者几乎需要设置属性 enable.auto.commit 至 true 因此,您的消费者每5秒确认一次返回的所有记录。此5秒间隔可通过属性进行配置 auto.commit.interval.ms . 如果你设置属性 enable.auto.commit 至 false 然后将由您的消费者通过调用方法来确认每个记录 commit() 明确地。现在请记住lambda函数的性质。备份每个已部署函数的底层容器会不时地被回收,不管对象是什么(例如 KafkaConsumer )你已经在你的函数中示例化,将被销毁,并重新创建子顺序。这意味着您在使用过程中可能会遇到一些性能延迟,并且如果上一次轮询没有提交所有已读记录,那么您的记录最终可能会重复。使用者将从上次提交的偏移量恢复其处理。幸运的是,aws发布了对msk上每个kafka记录执行lambda函数的感兴趣的支持。您可以通过以下链接了解更多信息:https://aws.amazon.com/blogs/compute/using-amazon-msk-as-an-event-source-for-aws-lambda/
enable.auto.commit
true
auto.commit.interval.ms
false
commit()
KafkaConsumer
1条答案
按热度按时间cbwuti441#
Kafka的确认模型将是相同的,无论你是否使用msk或其他东西-因此,你没有找到任何关于aws文件。你的消费者几乎需要设置属性
enable.auto.commit
至true
因此,您的消费者每5秒确认一次返回的所有记录。此5秒间隔可通过属性进行配置auto.commit.interval.ms
. 如果你设置属性enable.auto.commit
至false
然后将由您的消费者通过调用方法来确认每个记录commit()
明确地。现在请记住lambda函数的性质。备份每个已部署函数的底层容器会不时地被回收,不管对象是什么(例如
KafkaConsumer
)你已经在你的函数中示例化,将被销毁,并重新创建子顺序。这意味着您在使用过程中可能会遇到一些性能延迟,并且如果上一次轮询没有提交所有已读记录,那么您的记录最终可能会重复。使用者将从上次提交的偏移量恢复其处理。幸运的是,aws发布了对msk上每个kafka记录执行lambda函数的感兴趣的支持。您可以通过以下链接了解更多信息:
https://aws.amazon.com/blogs/compute/using-amazon-msk-as-an-event-source-for-aws-lambda/