Обзор различных реализаций Scala Actor - PullRequest
53 голосов
/ 25 мая 2010

Я пытаюсь найти «правильную» реализацию актера. Я понял, что их куча, и это немного запутанно. Лично меня особенно интересуют удаленные актеры, но я думаю, что полный обзор был бы полезен для многих других. Это довольно общий вопрос, поэтому не стесняйтесь отвечать только за реализацию, о которой вы знаете.

Я знаю о следующих реализациях Scala Actor (SAI). Пожалуйста, добавьте недостающие.

  • Скала 2,7 (отличие от)
  • Scala 2.8
  • Акка (http://www.akkasource.org/)
  • Лифт (http://liftweb.net/)
  • Скалаз (http://code.google.com/p/scalaz/)


  • Каковы целевые сценарии использования этих ВОФК (облегченная или "тяжелая" корпоративная среда)?

  • они поддерживают удаленных актеров? Какие недостатки есть у удаленных актеров в ВОФК?
  • Как их игра?
  • Насколько активно сообщество?
  • Насколько легко им начать? Насколько хороша документация?
  • Насколько легко они расширяются?
  • Насколько они стабильны? Какие проекты их используют?
  • Каковы их недостатки?
  • Каковы их принципы дизайна?
    • Они основаны на потоках или событиях (получать / реагировать) или оба?
    • Вложенный получает S
    • прерывание цикла сообщений Актера

Ответы [ 5 ]

18 голосов
/ 28 декабря 2010

Это наиболее полное сравнение, которое я когда-либо видел:

http://doc.akka.io/docs/misc/Comparison_between_4_actor_frameworks.pdf через http://klangism.tumblr.com/post/2497057136/all-actors-in-scala-compared

9 голосов
/ 18 января 2013

Начиная с Scala 2.10 , актеры scala теперь устарели, а Akka Actors теперь является частью стандартного дистрибутива

8 голосов
/ 28 мая 2010

Скала 2.7.7. vs 2.8 после Дистрибутив Scala 2.8.0 RC3 :

Новые Reactors предоставляют более легкие актеры, основанные исключительно на событиях, с необязательной неявной идентификацией отправителя. Добавлена ​​поддержка актеров с семантикой в ​​стиле демона. Актеры могут быть сконфигурированы для использования эффективного пула JSR166y ветвления / объединения, что приводит к значительному повышению производительности на 1.6 JVM. Планировщики теперь подключаемые и их проще настраивать.

Существует также проектный документ Халлера: Действующие лица Scala: объединение программирования на основе потоков и событий

6 голосов
/ 25 мая 2010

Насколько я знаю, только Scala и Akka поддерживают удаленных актеров.

Akka поддерживается масштабируемыми решениями, которые предлагают коммерческую поддержку и плагины для akka. Akka выглядит как тяжеловесное решение, которое нацелено на интеграцию с существующими платформами (верблюд, AMQP, JTA, Comet, Spring, Redis) и дополнительно с STM и постоянством.

Akka по сравнению со Scala не поддерживает вложенные приемы, но поддерживает горячую замену цикла сообщений актеров и имеет как потоковых, так и событийных актеров, а также так называемых однопоточных "событий".

3 голосов
/ 05 июля 2010

Я понял, что Акка навязывает исчерпывающие совпадения. Таким образом, даже если технически получение ожидает частичную функцию, функция не должна быть частичной. Это означает, что вы должны обрабатывать каждое сообщение немедленно.

...