apache-kafka - 我如何像关系数据库一样使用 Kafka
问题描述
一天中的好时光。我很抱歉我的英语不好。我有一些问题,你能帮我了解如何使用 kafka 和 kafka 流,如数据库。
我的问题是我有一些微服务,每个服务都有自己的数据库中的数据。为了报告的目的,我需要一次性收集数据,为此我选择了 kafka。我用debezuim也许你知道(更改数据捕获debezium),关系数据库中的每个表都是kafka中的一个主题。到目前为止,我用 kafka 流编写了应用程序(我互相加入了流)。示例:我有 ORDER 和 ORDER_DETAILS 的主题,一段时间后会有一些活动加入这个主题,问题是我不知道这个活动什么时候来,可能是几分钟后,几个月后或几年后。如何在一个月或一年之后获取主题 ORDER 和 ORDER_DETAIL 中的数据?无限保存主题中的数据是正确的方法吗?你能给我一些建议,也许有一些解决方案。
解决方案
一旦数据库发生变化,该事件就会发生。
通常,对数据库表的更改作为消息推送到主题。
对数据库的每次更新都将是一条 kafka 消息。由于每次更新都有一条消息,因此您可能只对任何给定键的最新值(更新)感兴趣,该键主要是主键
在这种情况下,您可以无限地维护主题 ( retention.ms=-1
) 但紧凑 ( cleanup.policy=compact
) 以节省空间。
您可能还对配置segment.ms
和/或segment.bytes
进一步调整主题保留感兴趣。
推荐阅读
- sql - 找到每艘船上的水手
- javascript - 错误:无法从路径或包中检测节点名称
- rust - 当仅另一个特征参数需要生命周期时,编译器会抱怨缺少 PhantomData
- python - 将字典转换为列表,然后从列表转换回字典,但具有相同的值
- amazon-web-services - 我只需要为 3 个云提供商 AWS、GCP、阿里巴巴创建集中式 DNS/LDAP
- javascript - onClick 切换数组对象
- sql - 添加具有基于另一个日期时间列的值的日期时间列
- javascript - 填写文本时按钮奇怪地移动
- java - Lombok 注解不适用于继承
- python - 如何计算Python中两个累积样本分布之间的最大距离?