强制自动缩放的消费者每次开始时都阅读整个 Kafka 主题
Forcing autoscaled consumers to read whole Kafka topic each time they start
我有一个压缩的 table 代表系统的实际状态。根据业务规则,每当服务实例(自动缩放)启动时,整个主题都应该被读取并缓存到内存中,同时密切关注新的更新。为了保证这种行为,正确的 Kafka 消费者设置是什么?
在您的情况下,最重要的是使用 auto.offset.reset=earliest
启动消费者,因此您会收到到目前为止的全部主题内容并等待新事件。
Kafka Consumer在循环中以重复轮询的方式工作,轮询(接收)当前主题中的所有数据可能需要多次轮询并花费一些时间,取决于主题的大小(也受保留影响)。
关于缓存,您将编写缓存每次轮询迭代中接收到的事件。
进一步阅读有关 Kafka 消费者和轮询最佳实践的信息:
https://www.oreilly.com/library/view/kafka-the-definitive/9781491936153/ch04.html
我有一个压缩的 table 代表系统的实际状态。根据业务规则,每当服务实例(自动缩放)启动时,整个主题都应该被读取并缓存到内存中,同时密切关注新的更新。为了保证这种行为,正确的 Kafka 消费者设置是什么?
在您的情况下,最重要的是使用 auto.offset.reset=earliest
启动消费者,因此您会收到到目前为止的全部主题内容并等待新事件。
Kafka Consumer在循环中以重复轮询的方式工作,轮询(接收)当前主题中的所有数据可能需要多次轮询并花费一些时间,取决于主题的大小(也受保留影响)。
关于缓存,您将编写缓存每次轮询迭代中接收到的事件。
进一步阅读有关 Kafka 消费者和轮询最佳实践的信息:
https://www.oreilly.com/library/view/kafka-the-definitive/9781491936153/ch04.html