Akka — ClusterSingleton с JDK7

Эта проблема

Я экспериментирую с поддержкой кластера Akka. Я застрял с поддержкой ClusterSingleton, для которой, похоже, требуется JDK8... Который я не могу использовать.

Согласно здесь мне нужно включить следующая библиотека:

<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 предполагают, что JDK7 более чем достаточно:

Серия Scala 2.11.x нацелена на Java 6 с (развивающейся) экспериментальной поддержкой Java 8.

Опции

Каковы мои варианты? Я вижу следующее:

  1. Откажитесь от идеи использования Akka, так как для новых выпусков, как кажется, потребуется JDK8. JDK8, к сожалению, не вариант
  2. Надеюсь будет akka-cluster-tools_2.10 и мои проблемы исчезнут. Будет ли akka-cluster-tools_2.10?
  3. Forget about akka-cluster-tools_2.10 and use akka-contrib_2.10 instead.
    There's a chance it would work, although
    1. It's going to be more difficult, as the current documentation refers to akka-cluster-tools
    2. Я только начинаю работать с Akka, и мне уже нужно использовать устаревшие библиотеки...

Спасибо ф


person featur    schedule 02.09.2015    source источник
comment
Для Akka 2.4 (которая еще не выпущена) потребуется Java 8. Если вам нужна поддержка Java 6/7, вам придется придерживаться Akka 2.3.   -  person Ryan    schedule 03.09.2015
comment
Вы можете попробовать версию 2.3.13, выпущенную сегодня.   -  person hveiga    schedule 03.09.2015
comment
@Райан, спасибо за отзыв.   -  person featur    schedule 03.09.2015
comment
@Hvelga, как в этом случае может помочь 2.3.13?   -  person featur    schedule 03.09.2015


Ответы (1)


Как сказал Райан в комментарии, для Akka 2.4 (которой еще нет) требуется/потребуется Java 8.

Вы по-прежнему можете использовать ClusterSingleton, Sharding, DistributedPubSub в Akka 2.3 только в том случае, если он находится в пакете akka-contrib. И вы можете найти документы для него по адресу http://doc.akka.io/docs/akka/2.3.12/contrib/index.html, так что с этим проблем нет.

Кроме того, различия в API между версиями 2.3 и 2.4 для работы с кластерами невелики, поэтому вполне возможно сделать этот шаг в будущем без особых усилий.

Обратной стороной этого может быть то, что усовершенствования кластерных инструментов в версии 2.4 не обязательно будут перенесены в версию 2.3 и что в будущем основные усилия по разработке будут сосредоточены на версии 2.4.

person johanandren    schedule 03.09.2015
comment
Спасибо за разъяснение. Теперь нам еще труднее попробовать Akka — мы бы остановились на версии, которая вот-вот устареет. Не по теме - я не уверен, что было правильным решением команды Akka отказаться от поддержки JDK7. Это не исключительная ситуация, когда клиент привязан к конкретной версии Java из-за устаревших системных требований. Конечно, есть и другие способы - эти системы можно (предположительно, нужно) изолировать через удаленно доступные интерфейсы, но это не облегчает жизнь... - person featur; 03.09.2015
comment
Акка обеспечивает поддержку одной версии назад, от 2.3 сразу не откажутся. Сказанное, Java 7 уже было EOL'd, и у Akka были веские технические причины требовать 8, таких как улучшения CompletionStage и sun.misc.Unsafe. - person Ryan; 03.09.2015