Как организовать код с шаблоном актера - PullRequest
3 голосов
/ 12 мая 2019

Я конвертирую Java-приложение в Akka, чтобы узнать об актерском паттерне.

Допустим, у меня есть три обычных уровня (приложение, домен, инфраструктура).В слое моего домена есть несколько агрегатов, например, Пользователь, Автомобиль, ...

Вопрос: Поскольку эти агрегаты имеют изменяемое состояние, должен ли я преобразовать эти агрегаты в акторы?, Они имеют изменяемое состояние икажется, что актеры - это решение, которое подходит к этому.

1 Ответ

0 голосов
/ 13 мая 2019

Изменяемое состояние не является причиной, по которой вы должны использовать Actors. Особенно, если вы хотите подвергнуть это изменчивое состояние внешнему миру. Основным аргументом в пользу использования Akka и Actors является масштабируемость и параллелизм. В других случаях это просто добавляет ненужный уровень сложности.

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

Что касается изменяемого состояния актера, я рекомендую вам прочитать эту статью и эти лучшие практики обработки состояний.

...