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

Какая модель/библиотека моделей для Java?

Существует так много различных моделей Actor для Java (и языков JVM).

Было реализовано множество библиотек и фреймворков Actor, позволяющих программировать в стиле Actor на Java (у которого нет встроенных Актеров). Я думаю, что у модели Actor есть большие преимущества, но выбор для Java огромен!

Может ли кто-нибудь опубликовать самые популярные и предложить некоторое представление о том, что использовать? Какие из них имеют контрольные показатели пропускной способности с точки зрения сообщений, передаваемых в секунду?

4b9b3361

Ответ 1

Это - хорошая серия статей. Также см. эту презентацию. Карл Хьюитт объясняет суть модели вычисления здесь.

Killim и Akka (scala ) имеет лучшую производительность. Я бы предложил использовать Akka. Начиная с Scala 2.11.0, библиотека Scala Актеров устарела. Уже в Scala 2.10.0 библиотека актеров по умолчанию - Akka. Используйте akka в качестве интерфейса и вызовите свой Java-код, если вы не хотите делать все кодирование в Scala. Scala и Akka имеет очень хороший синтаксис и API. Акка имеет Java API под названием "Активные объекты". Обратите внимание, что в Акке сейчас происходит много чего, поэтому база кода движется быстро. См. начало работы с Java

Killim основан на Java, но компилирует временное плетение.

Jetlang и FunctionalJava - это параметры который не выполняет компиляцию во времени (? unsure), но не так быстро, как Akka и Killim (никаких текущих данных по этому поводу, но есть некоторые старые числа в Джонас Бонерс и Виктор Клангс беседуют в Scala Days 2010).

Другие варианты - использование обычной JMS (или другого MQ/PubSub). Также вы могли бы сделать свои собственные простые каналы публикации/работника JVM. Или просто используйте java util concurrent ExecutorService или com.google.common.util. одновременно

Другие Scala основанные фреймворки/библиотеки с реализациями Actor Stambecco, Lift и Scalaz.

Другие аналогичные модели Служба распределенного сервиса Hazlecast, Oracle Coherence с InvocableService, исполнителями GigaSpaces или IBM eXtreme Scale. Но в какой-то степени это не означает, что "Актеры - системы".

Ответ 2

Jumi Actors - это актерская библиотека для Java. Он был разработан для естественного использования в Java-коде - вам не нужно создавать класс для каждого сообщения, но сообщения представлены как методы на интерфейсе. Также его участники собирают мусор, поэтому им не нужно явно останавливаться. Код с использованием Jumi Actors testable, как единый тестируемый, без контейнера-участников, так и для интеграции с возможностью тестирования с использованием детерминированной однопоточной реализации контейнера.

По сравнению с Аккой Актеры он намного меньше в двоичном размере (33 КБ против 10+ МБ) и намного быстрее. Глядя на пример Pi в учебнике Akka и тот же пример с участием Jumi Actors, с Akka вычисление берет 480-520 мс, но с Jumi Actors всего 350-390 мс. (Разница, несомненно, была бы еще больше, если бы актеры не работали, и мы будем измерять только передачу сообщений.) При сравнении производительности запуска запуск контейнера Akka занимает 620 мс, но запуск контейнера Jumi Actors занимает всего 25 мс.

Ответ 3

Мы провели соответствующее исследование под названием "Рамочные рамки для платформы JVM: сравнительный анализ", который был опубликован в прошлом году, и сравнивает синтаксис, семантику и производительность некоторых основанных на JVM рамок для актеров. Он доступен в https://www.researchgate.net/profile/Gul_Agha/publication/221302944_Actor_frameworks_for_the_JVM_platform/links/55aeb2df08aed614b09a775c.pdf?origin=publication_detail. Надеюсь, вы сочтете это полезным.

Ответ 4

Другой вариант - GPars. Groovy, но может быть вызван с Java, как Akka.

Ответ 6

Ну, я искал хорошую реализацию актеров в Scala, и посмотрел как на родные Scala, так и на Akka. Я нашел оба этих сложного комплекса. Затем я нашел Lift Actors, который я нашел простым, элегантным и хорошо продуманным. Все вышесказанное можно использовать с Java (с помощью Java-дружественных именованных методов).

Обсуждение по адресу: http://erikengbrecht.blogspot.com/2009/06/pondering-actor-design-trades.html

Загрузить по адресу: http://liftweb.net/

Вам просто нужен лифтинг-актер _?. jar и lift-common _?. jar из загрузок Lift (плюс Scala std lib). Взгляните на актеров Lift Scala источник: очень аккуратный.