【问题标题】:Don't find kafka StoreBuilder class找不到 kafka StoreBuilder 类
【发布时间】:2019-02-16 13:16:02
【问题描述】:

我使用的是 kafka 0.11。我在 kafka-streams-0.11.0.0.jar 中找不到 StoreBuilder 类。
知道有什么问题吗?

【问题讨论】:

  • 不清楚你为什么期望它在那里

标签: apache-kafka apache-kafka-streams apache-kafka-connect


【解决方案1】:

该类已添加到 Kafka 1.0.0 - KAFKA-5650

幸运的是,较新的 Kafka Streams 库向后兼容 0.11.0 代理(假设这就是您选择该版本的原因)

我注意到你的类名是“test jdbc”,所以我建议使用现有的 Kafka Connect JDBC 产品,而不是重新发明它

我想使用 kstream.transform() 函数转换传入的流数据,然后将转换后的数据提供给 Oracle db 表 VIA JdbcSinkConnector

您可能想尝试制作或使用Simple Message Transform (SMT)。让 JdbcSink 连接器为您处理从 Kafka 中获取记录,并且连接器的属性配置位于单独的位置,并且可重用,而不是特定于您的代码。

Transformation 接口有一个apply() 方法,您可以随意转换消息,这实际上与kstream.map(...).to("topic") 的概念相同,但目标不是单独的 Kafka 主题

【讨论】:

  • 感谢您的回复。我想使用 kstream.transform() 函数转换传入的流数据,然后将转换后的数据提供给 Oracle db 表 VIA JdbcSinkConnector。是否有任何示例代码/链接可以使用较新的 Kafka Streams 库进行转换?
  • 库没有完全改变,只是添加、修改了类。您当前拥有的任何示例都应该仍然有效。尤其是那些使用 StateStoreBuilder
  • 你能告诉我我需要使用哪个版本的 kafka 或 kafka 流吗?
  • 对不起,我的意思是:我不想向后兼容 0.11.0 代理。如果是这种情况,我需要使用哪个版本的 kafka 或 kafka 流?
  • 您可以使用比0.10.2 更新的任何版本,但是您运行的是什么版本的 Kafka?最新版本是2.0... 要在您的 Kafka Streams 代码中获取该类,您可以运行任何代理版本,您只需要在应用程序中更新您的 JAR。我不确定我是否理解您的担忧
猜你喜欢
  • 1970-01-01
  • 2018-04-15
  • 2016-03-08
  • 2017-08-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-08-29
  • 2019-05-27
相关资源
最近更新 更多