Kafka流数据库查询架构?

时间:2016-10-05 13:44:07

标签: apache-kafka

我有大量的简单事件记录进入系统并发布到Kafka主题。

我有一个响应事件的流应用程序,对于每个事件,执行Postgresql查询,获取/创建新ID,注释记录,并发布到输出主题。

我怀疑为每一个传入事件记录执行postgresql操作都会出现性能问题。

此方案有哪些更好或替代的设计?

2 个答案:

答案 0 :(得分:2)

您可以使用短时间窗口累积n秒的记录,然后批量处理发出的记录。这将为您提供更大的记录集,您可以使用jdbc批处理来提高性能。

答案 1 :(得分:1)

这是Kafka Streams streaming join的理想情况,如果您捕获了在另一个Kafka主题中查询的Postgres表的内容,则可以查找现有记录并充实它们,而无需调出数据库。如果您需要在表中插入新记录,则可以发布到写入数据库的另一个主题。

可以使用Kafka Connect's JDBC source从Postgres获取数据,或者甚至更好:使用CDC from the Debezium project

可以使用Kafka Connect JDBC sink来写回表。

相关问题