gpt4 book ai didi

playframework - Flink 与 Play 2.5 的 Akka 版本冲突

转载 作者:行者123 更新时间:2023-12-04 03:44:34 26 4
gpt4 key购买 nike

在我们的项目中,我们有一个 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 的依赖),假设这将解决问题。但同样的问题似乎仍然存在。

关于可能仍然导致这种情况的任何想法?

最佳答案

解决此依赖冲突的唯一方法是通过 relocating the conflicting classes into a different namespace .

关于playframework - Flink 与 Play 2.5 的 Akka 版本冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45297820/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com