首页 > 解决方案 > 我如何像关系数据库一样使用 Kafka

问题描述

一天中的好时光。我很抱歉我的英语不好。我有一些问题,你能帮我了解如何使用 kafka 和 kafka 流,如数据库。

我的问题是我有一些微服务,每个服务都有自己的数据库中的数据。为了报告的目的,我需要一次性收集数据,为此我选择了 kafka。我用debezuim也许你知道(更改数据捕获debezium),关系数据库中的每个表都是kafka中的一个主题。到目前为止,我用 kafka 流编写了应用程序(我互相加入了流)。示例:我有 ORDER 和 ORDER_DETAILS 的主题,一段时间后会有一些活动加入这个主题,问题是我不知道这个活动什么时候来,可能是几分钟后,几个月后或几年后。如何在一个月或一年之后获取主题 ORDER 和 ORDER_DETAIL 中的数据?无限保存主题中的数据是正确的方法吗?你能给我一些建议,也许有一些解决方案。

标签: apache-kafkaapache-kafka-streamsapache-kafka-connect

解决方案


一旦数据库发生变化,该事件就会发生。

通常,对数据库表的更改作为消息推送到主题。

对数据库的每次更新都将是一条 kafka 消息。由于每次更新都有一条消息,因此您可能只对任何给定键的最新值(更新)感兴趣,该键主要是主键

在这种情况下,您可以无限地维护主题 ( retention.ms=-1) 但紧凑 ( cleanup.policy=compact) 以节省空间。

您可能还对配置segment.ms和/或segment.bytes进一步调整主题保留感兴趣。


推荐阅读