我正在尝试编写一个程序,使我能够在 Scala 中对 Kafka 主题运行预定义的 KSQL 操作,但我不想每次都打开 KSQL Cli。因此,我想从我的 Scala 程序中启动 KSQL“服务器”。如果我正确理解了 KSQL 源代码,我必须构建并启动一个 KsqlRestApplication:
def restServer = KsqlRestApplication.buildApplication(new
KsqlRestConfig(defaultServerProperties), true, new VersionCheckerAgent
{override def start(ksqlModuleType: KsqlModuleType, properties:
Properties): Unit = ???})
但是当我尝试这样做时,我收到以下错误:
Exception in thread "main" java.lang.NoSuchMethodError: org.apache.kafka.streams.StreamsConfig.getConsumerConfigs(Ljava/lang/String;Ljava/lang/String;)Ljava/util/Map;
at io.confluent.ksql.rest.server.BrokerCompatibilityCheck.create(BrokerCompatibilityCheck.java:62)
at io.confluent.ksql.rest.server.KsqlRestApplication.buildApplication(KsqlRestApplication.java:241)
我查看了 BrokerCompatibilityCheck 中的函数调用,并在创建函数中调用了 StreamsConfig.getConsumerConfigs() ,并使用 2 个字符串作为参数,而不是在
我的 KSQL 和 Kafka 版本根本不兼容还是我做错了什么?我正在使用 KSQL 版本 4.1.0-SNAPSHOT 和 Kafka 版本 1.0.0。