喜欢 - 使用 JDK7 的 ClusterSingleton

Akka - ClusterSingleton with JDK7

问题

我正在试验 Akka 的集群支持。我遇到了似乎需要 JDK8 的 ClusterSingleton 支持……我无法使用。

根据documentation here,我需要包含以下库:

<dependency>
    <groupId>com.typesafe.akka</groupId>
    <artifactId>akka-cluster-tools_2.11</artifactId>
    <version>2.4-SNAPSHOT</version>
</dependency>

在我的测试中显示,整个 akka-*2.11(使用 Scala 2.11 编译)需要 JDK8,包括 akka-cluster-tools。我不是 Scala 专家,但它看起来很奇怪 - Scala 2.11.1 release notes 建议,JDK7 绰绰有余:

The Scala 2.11.x series targets Java 6, with (evolving) experimental support for Java 8

选项

我有哪些选择?我看到以下内容:

  1. 放弃使用 Akka 的想法,因为新版本似乎需要 JDK8。遗憾的是 JDK8 不是一个选项
  2. 希望会有 akka-cluster-tools_2.10,我的问题就会消失。 会有akka-cluster-tools_2.10吗?
  3. 忘掉 akka-cluster-tools_2.10,改用 akka-contrib_2.10。
    它有可能会起作用,尽管
    1. 这会更难,因为当前文档指的是 akka-cluster-tools
    2. 我刚开始使用 Akka 并且已经需要使用已弃用的库...

谢谢 f

正如 Ryan 在评论中所说,Akka 2.4(还没有)requires/will 需要 Java 8。

您仍然可以在 Akka 2.3 中使用 ClusterSingleton、Sharding、DistributedPubSub,只是它们在 akka-contrib 包中。您可以在 http://doc.akka.io/docs/akka/2.3.12/contrib/index.html 下找到它的文档,所以没有问题。

此外,2.3 和 2.4 之间的 API:s 集群内容的差异不是很大,因此很有可能在未来不费吹灰之力地进行迁移。

它的背后可能是 2.4 中对集群工具的改进可能不一定会向后移植到 2.3,并且未来的主要开发工作将集中在 2.4 上。