根据消费者请求将点播数据流式传输到 Kafka 主题
Streaming on-demand data on to Kafka topics based on consumer requests
我们是一个源系统,我们有几个下游系统需要我们的数据来满足他们的需要,目前我们正在将事件发布到 Kafka 主题 上,只要有源系统的变化,供他们使用和更改他们的表(所有增量更新)
我们的下游系统目前正在直接访问我们的数据库,有时会根据需要完全刷新他们的表,以确保数据同步,除了订阅Kafka 主题,如您所知,当我们感觉数据由于某种原因不同步时,有时我们总是需要刷新数据。
我们计划停止直接访问我们的数据库,我们该如何实现?有没有一种方法可以让消费者通过任何触发器向我们请求他们的数据需求,比如将请求传递给我们,我们可以发布数据流供他们在他们的终端消费,他们同步表或将大量数据放入他们的内存中以执行一些根据他们的需要完成任务。
我们目前已经编写了 RESTful API 来根据请求提供数据,但是我们暴露的数据量很小,因为我认为 API 我们只发送较小的数据量,但是当我们想向消费者发送数百万数据,我认为唯一的方法是在 Kafka 上流式传输数据,但是对于 Kafka,我们如何响应消费者的请求并且只将特定数据泵送到 Kafka 主题供他们使用?
您可以选择设置任何主题的保留策略以永久保留消息:
retention.ms: -1
在那种情况下,您可以按照与当前相同的方式存储整个更改日志。然后,如果消费者需要重新具体化整个历史记录,他们可以从第一个偏移量开始,然后从那里开始,而无需生成专门的数据集。
我们是一个源系统,我们有几个下游系统需要我们的数据来满足他们的需要,目前我们正在将事件发布到 Kafka 主题 上,只要有源系统的变化,供他们使用和更改他们的表(所有增量更新)
我们的下游系统目前正在直接访问我们的数据库,有时会根据需要完全刷新他们的表,以确保数据同步,除了订阅Kafka 主题,如您所知,当我们感觉数据由于某种原因不同步时,有时我们总是需要刷新数据。
我们计划停止直接访问我们的数据库,我们该如何实现?有没有一种方法可以让消费者通过任何触发器向我们请求他们的数据需求,比如将请求传递给我们,我们可以发布数据流供他们在他们的终端消费,他们同步表或将大量数据放入他们的内存中以执行一些根据他们的需要完成任务。
我们目前已经编写了 RESTful API 来根据请求提供数据,但是我们暴露的数据量很小,因为我认为 API 我们只发送较小的数据量,但是当我们想向消费者发送数百万数据,我认为唯一的方法是在 Kafka 上流式传输数据,但是对于 Kafka,我们如何响应消费者的请求并且只将特定数据泵送到 Kafka 主题供他们使用?
您可以选择设置任何主题的保留策略以永久保留消息:
retention.ms: -1
在那种情况下,您可以按照与当前相同的方式存储整个更改日志。然后,如果消费者需要重新具体化整个历史记录,他们可以从第一个偏移量开始,然后从那里开始,而无需生成专门的数据集。