在kafka中,是否只有当topic有最小n条消息时才有可能从topic中消费消息?



这是我的例子,

我们在源端有一个Postgres连接器,在汇聚端有一个lambda连接器。我们已经实现了这个管道,它正在工作。

所以我们可以在lambda函数上获取数据库数据(更新,删除,插入)。但我们不希望每次数据库中有任何变化时都调用lambda函数。如果主题有最小值N次变化,然后我们想把这些数据发送给lambda函数。

Lambda连接器具有批处理选项高级设置,但它用于最大化批处理大小。我想确定最小批处理大小,之后主题中的消息将由消费者连接器使用。

仅当topic具有最小n条消息时才从topic中消费消息?

开箱即用,没有,而且没有连接框架。

您可以使用GetOffsetShell或其他编程功能来检查"结束偏移量"。,但这不是确切的"消息数"。然后,如果满足某些条件,就可以启动一个消费者。

另外,您将继续发送数据,并且可能之前已经处理过数据,这些数据不会从主题中删除,因此"主题具有N条消息"的想法;这说不通啊。因此,您还需要查询任何承诺的偏移量计算差异(即消费者滞后)。


您的另一个选择是始终读取主题,将数据获取到内存中的数据结构(批处理),然后仅在达到一定大小时处理它(并提交结束偏移量)。Kafka Streams窗口函数可以帮助解决这个问题;Window/聚合数据并将事件发送到一个新的主题,该主题将调用lambda。

相关内容

  • 没有找到相关文章

最新更新