Подтвердить что ты не робот

Разное Scala Обзор исполнителей актеров

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

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

  • Scala 2.7 (разница)
  • Scala 2.8
  • Akka (http://www.akkasource.org/)
  • Подъем (http://liftweb.net/)
  • Scalaz (http://code.google.com/p/scalaz/)


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

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

Ответ 2

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

Ответ 3

Scala 2.7.7. vs 2.8 после Распределение Scala 2.8.0 RC3:

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

Также есть дизайнерский документ Haller: Scala Актеры: Объединение Thread-based и Event-based Programming

Ответ 4

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

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

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

Ответ 5

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