1

我没有在官方 AWS 文档中找到有关 AWS Lambda 从 AWS MSK(托管 Kafka)用于消息消费的确认模型的任何信息。

AWS Lambda 如何确认来自 AWS MSK 的 Kafka 消息?是否可以配置它(自动与手动确认)?

4

1 回答 1

3

无论您使用的是 MSK 还是其他东西,Kafka 的确认模型都是相同的——这就是为什么您在 AWS 文档上没有找到任何东西的原因。您的消费者几乎需要将属性设置为enable.auto.committrue以便您的消费者确认每 5 秒返回的所有记录。这 5 秒的时间间隔可以通过属性来配置auto.commit.interval.ms。如果您将该属性设置为enable.auto.commitfalse则由您的消费者通过显式调用该方法来确认每条记录commit()

现在请记住 Lambda 函数的性质。备份每个已部署函数的底层容器会不时回收,并且KafkaConsumer您在函数中实例化的任何对象(例如 )都将被销毁并按顺序重新创建。这意味着您可能会在消费过程中遇到一些性能延迟,并且如果最后一次轮询没有提交所有读取记录,您的记录可能最终会重复。消费者将从最后提交的偏移量恢复其处理。

幸运的是,AWS 发布了对 MSK 上每条 Kafka 记录执行 Lambda 函数的支持。这是一个链接,您可以了解更多信息:

https://aws.amazon.com/blogs/compute/using-amazon-msk-as-an-event-source-for-aws-lambda/

于 2020-10-21T17:50:35.750 回答