Spark结构化流与Kafka消费者/生产者

时间:2019-05-07 02:08:45

标签: java apache-spark apache-kafka

我有一个用例,其中我的应用程序需要从Kafka主题中读取学生证和其他相关信息,并作为每个学生证的记录插入Postgres数据库中 每天最多有数千名学生证

我正在考虑创建一个基于Java的Kafka客户应用程序,以读取和处理来自Kafka主题的消息

对于该用例,我应该考虑使用Kafka或基于Java的通用Kafka使用者进行火花结构化流式传输

2 个答案:

答案 0 :(得分:1)

也许这不是您问题的答案,而是重塑轮子,您应该使用现有的工具: Apache Kafka Connect

Kafka Connect是用于在Apache Kafka和其他系统之间可扩展且可靠地流传输数据的工具。已经开发了几种连接器并可以使用。还有一个选项可以自行开发。

对于您的用例-将数据提取到Postgres-Confluent已经开发了连接器:JDBC Connector

有关Kafka Connect整个概念的更多详细信息,请参见:

答案 1 :(得分:0)

在您的用例中,听起来像是:

  • 您的数据规模很小(只有几千个用户)
  • 您的数据量是一致的
  • 无论如何,您都不会以任何方式转换,操纵/聚合数据 只是将其作为Kafka的输入读取,然后作为输出写入 Postgres表。

最重要的是,Spark不会给您带来任何优势,甚至会带来不必要的开销。