|
|
|
Akka Actors - а в чем основные преимущества?
|
|||
|---|---|---|---|
|
#18+
Перекинули помогать одной команде, у них идеология - Java для криволапых, а мы все пишем на Scala + Akka. Почитал доку, посмотрел примеры, спрашиваю - в чем кардинальное отличие от Spring Integration? Идеи те же, только SI гораздо гибче в настройках взаимодействия между модулями. Никто внятно ответить не смог. Погуглил, вроде часто упоминают "легковесные треды", которых можно на ноутбуке запустить миллион штук. Это мне не очень понятно, JVM-то та же самая. Поделитесь, пожалуйста, своим мнением по этому вопросу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2014, 07:21 |
|
||
|
Akka Actors - а в чем основные преимущества?
|
|||
|---|---|---|---|
|
#18+
bober22, Spring Integration это вообще не то. https://ru.wikipedia.org/wiki/Модель_акторов Ключевая особенность - это мелкие асинхронные задачи. Суть в том, что вместо толстых Transaction Script (Service), где каждый сценарий выполняется отдельным потоком, процесс бъется на маленькие асинхронные подзадачи. Такая реализация лучше масштабируется. При большом количестве клиентов Transaction Script требует себе поток на запрос одного клиента. Актеры же выстраиваются в очереди и меньшим количеством потоков способны обрабатывать бизнес-транзакции. Всё тоже самое можно и на JMS организовать. И даже на ExecutorService+FutureTask. Просто Akka предоставляет простой и удобный API для того чтобы организовывать акторов в сложные процессы. Основная проблема Actor Model в сложности отладки сценариев. Если в TransactionScrtipt ты поставил breakpoint и видишь всю свою транзакцию в развернутов стэке, то в Actor Model ты видишь лишь небольшую часть транзакции, без возможности откатиться или заглянуть в других акторов этого же "сценария". (Технологии на месте не стоят и я где-то читал как эта проблема успешно решается, но деталей не помню) В языке Java Actor Model используется редко из-за отсутствия continuation. Continuation позволяет писать код в виде старого доброго Transaction Script, но выполнять отдельные методы асинхнонно, как акторы. Это тоже всё решаемо при желании. Вот ещё теория по теме https://ru.wikipedia.org/wiki/Реактивное_программирование ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2014, 09:22 |
|
||
|
Akka Actors - а в чем основные преимущества?
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2014, 09:23 |
|
||
|
Akka Actors - а в чем основные преимущества?
|
|||
|---|---|---|---|
|
#18+
авторпроцесс бъется на маленькие асинхронные подзадачи Вот не очень понятно, а что значит маленькие? Имхо выполнить сложение двух числе проще в основном потоке, чем отдавать актору - накладных расходов тупо больше будет авторSpring Integration это вообще не то. Всё тоже самое можно и на JMS организовать. Давайте рассмотрим какой-нибудь пример. АПИ (пусть будет веб сервис) - модуль складывающий два числа - модуль пишущий результат в файл - модуль зазиповывающий файл. Я же могу сделать эти модули через SI, и в xml описать правила взаимодействия, при этом модуль и знать не будет, кто ему передал сообщение и кому он передает свое. А как в акторах? Сделал я эти 4 актора и дальше получается, что у меня либо каждый актор должен знать, куда передавать свое сообщение, либо мне надо писать некий центральный обработчик, который будет знать логику взаимодействия. Как-то не очень здорово получается, имхо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2014, 14:57 |
|
||
|
Akka Actors - а в чем основные преимущества?
|
|||
|---|---|---|---|
|
#18+
bober22, Ну, если в SI всё конфигуряется для асинхроннго процесса, то разница только в средствах выражения. Просто SI ориентирован на распраделенные системы. В то время как Actor Model - это способ реализовать весь проект асинхронными блоками. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2014, 16:18 |
|
||
|
Akka Actors - а в чем основные преимущества?
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, Да, SI с идеологической точки зрения это клей для распределенных систем. Но с практической, я кидаю jar в classpath и у меня те же самые акторы, только с гораздо более мощными средствами конфигурации... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2014, 00:29 |
|
||
|
Akka Actors - а в чем основные преимущества?
|
|||
|---|---|---|---|
|
#18+
bober22Blazkowicz, Да, SI с идеологической точки зрения это клей для распределенных систем. Но с практической, я кидаю jar в classpath и у меня те же самые акторы, только с гораздо более мощными средствами конфигурации... Мощные средства мощно кушают ресурсы. Akka скорее с ForkJoin надо сравнивать, мне кажется. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2014, 08:09 |
|
||
|
Akka Actors - а в чем основные преимущества?
|
|||
|---|---|---|---|
|
#18+
bober22Вот не очень понятно, а что значит маленькие? Имхо выполнить сложение двух числе проще в основном потоке, чем отдавать актору - накладных расходов тупо больше будетОбычно алгоритм содержит точки блокировки - обращение к БД, ожидание результата от параллельного потока и т.п. Пока поток заблокирован, он не потребляет ресурс процессора, но по прежнему занимает кучу памяти под стек потока. Поэтому число потоков в приложении ограничено несколькими тысячами. Актор замещает кусок алгоритма от одной точки блокировки до другой, занимает стек рабочего потока только во время счёта, и не занимает во время ожидания, поэтому акторов вы можете завести миллионы, и можете сделать вашу программу более масштабируемой и более параллельной. bober22 Сделал я эти 4 актора и дальше получается, что у меня либо каждый актор должен знать, куда передавать свое сообщение, либо мне надо писать некий центральный обработчик, который будет знать логику взаимодействия. Ну так SI и есть тот самый центральный обработчик, и непонятно, лучший ли он для ваших нужд, а тут вы можете сделать свой, более удобный. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2014, 19:59 |
|
||
|
Akka Actors - а в чем основные преимущества?
|
|||
|---|---|---|---|
|
#18+
rfqАктор замещает кусок алгоритма от одной точки блокировки до другой, занимает стек рабочего потока только во время счёта, и не занимает во время ожидания, поэтому акторов вы можете завести миллионы, и можете сделать вашу программу более масштабируемой и более параллельной. А где можно про это почитать подробнее? Очень интересно... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2014, 11:52 |
|
||
|
Akka Actors - а в чем основные преимущества?
|
|||
|---|---|---|---|
|
#18+
Alexey TominА где можно про это почитать подробнее? Очень интересно... Это я сам пришел к такому заключению. Мне самому было бы интересно про это почитать, наверняка это где-то уже было. Все собираюсь накропать статейку "Основы параллелизма", но к ней нужны иллюстрации, и желательно анимированные, как на http://en.wikipedia.org/wiki/Petri_net . Есть тут желающие порисовать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2014, 21:53 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=38797112&tid=2126312]: |
0ms |
get settings: |
12ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
156ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
47ms |
get tp. blocked users: |
1ms |
| others: | 260ms |
| total: | 511ms |

| 0 / 0 |
