在我们的项目中,有一个 Flink (1.1.3) 流处理作业,它从一个 Kafka 队列读取数据,进行映射函数转换并写入另一个队列。但是在我们引入流程的一部分输出 REST 请求之后,发现出现了问题。为了解决这个问题,我们使用了 PlayFramework 的 WSClient (因为在我们的堆栈的其他地方也使用了它),并以以下方式在代码中创建了它:
这在本地工作得很好,但是当我部署它并在群集上运行时,我遇到了这个异常:
val config = new AhcWSClientConfig(wsClientConfig = WSClientConfig())
val builder = new AhcConfigBuilder(config)
val ahcConfig = builder.configure().build()
new AhcWSClient(ahcConfig)(ActorMaterializer()(ActorSystem()))
这在本地工作得很好,但是当我部署它并在群集上运行时,我遇到了这个异常:
java.lang.NoSuchMethodError: akka.util.Helpers$.toRootLowerCase(Ljava/lang/String;)Ljava/lang/String;
at akka.stream.StreamSubscriptionTimeoutSettings$.apply(ActorMaterializer.scala:491)
at akka.stream.ActorMaterializerSettings$.apply(ActorMaterializer.scala:243)
at akka.stream.ActorMaterializerSettings$.apply(ActorMaterializer.scala:232)
at akka.stream.ActorMaterializer$$anonfun$1.apply(ActorMaterializer.scala:41)
at akka.stream.ActorMaterializer$$anonfun$1.apply(ActorMaterializer.scala:41)
at scala.Option.getOrElse(Option.scala:121)
at akka.stream.ActorMaterializer$.apply(ActorMaterializer.scala:41)
at com.ourstuff.etl.core.utils.web.GlobalWSClient$.generateClient(WSClientFactory.scala:32)
经过调查,我认为这是Akka 2.3.x(由Flink 1.1.X带来)与Akka 2.4.x(由PlayFramework带来)之间的冲突。
我们升级了Flink集群到1.3.1(以及我们代码中的Flink依赖),希望这可以解决问题。但是似乎问题仍然存在。
您有什么想法,仍然可能导致这种情况发生吗?
whatDependsOn "com.typesafe.akka" "akka-actor_2.11" "2.3.7"
但没有得到任何结果。 - JoefGoldstein