从restapi摄取数据到kafka

9rygscc1  于 2021-06-07  发布在  Kafka
关注(0)|答案(1)|浏览(342)

我有许多restapi来从不同的数据源中提取数据,现在我想将这些rest响应发布到不同的kafka主题。此外,我想确保重复的数据是没有得到生产。有什么工具可以做这种操作吗?

mv1qrgav

mv1qrgav1#

因此,一般来说,kafka处理管道应该能够处理多次发送的消息。Kafka消息的精确一次传递是自2017年年中(鉴于我在2018年1月编写)以来才出现的一个功能,而Kafka是0.11,因此一般来说,除非您在Kafka安装中是超级bleedy edge,否则您的管道应该能够处理同一消息的多次传递。
那当然是你的管道。现在您遇到了一个问题,您的数据源可能会多次将消息传递到您的http->kafka微服务。
理论上,应该将管道设计为幂等的:同一更改消息的多个应用程序只应影响数据一次。当然,这说起来容易做起来难。但是,如果你能做到这一点,那么“问题就解决了”:只需发送重复的消息就可以了。这可能是最好的东西来驱动,无论什么时候只有交付神奇的kip-98(如果你不明白为什么这个超级神奇的井这里有一个家庭作业主题:))
假设您的输入数据是关于用户的帖子。如果你发布的数据包括 updated_at 创建事务日志的日期kafka主题。将键设置为用户id,将值设置为所有 updated_at 应用于该用户的字段。当你在处理一个http帖子时,在本地ktable中查找该主题的用户,检查你的帖子是否已经被录制。如果已经录下来了,就不要把它变成Kafka。
即使没有 updated_at 字段可以将用户文档保存在ktable中。如果kafka是事务日志数据流(数据库由内向外),那么ktables是右侧向外的流:又是数据库。如果ktable中的当前值(所有应用更改的累积值)与post中给出的对象匹配,那么您已经应用了更改。

相关问题