Распределенные актеры в Акке - PullRequest
9 голосов
/ 26 августа 2011

Я довольно новичок в Akka и новичок в распределенном программировании в целом. Используя компонент Akka Mist, я создал контролируемые акторы для асинхронной обработки HTTP-запросов. В настоящее время все работает на одной физической машине с местными актерами. Чего я не понимаю, так это как построить действительно отказоустойчивую систему с более чем одной коробкой. Как указано в документах Akka:

Кроме того, вам (обычно) необходимо знать, не работает ли один ящик, и / или не работает ли служба, с которой вы разговариваете, на другом ящике. Здесь контроль / связывание акторов является важным инструментом не только для мониторинга работоспособности удаленных сервисов, но и для фактического управления сервисом, чтобы решить проблему, если актер или узел не работает. Например, перезапуск актеров на том же узле или на другом узле.

Как мне это сделать? Я ищу пример или указатели о том, как начать распространять мое приложение. Другие сервисы в нашей группе используют шлюзы Apache перед несколькими экземплярами Tomcat, поэтому событие отключения сервера Tomcat прозрачно для пользователя. Я развертываю свой сервис в микроядре Akka, и мне необходимо достичь аналогичного уровня высокой доступности для нескольких физических блоков.

Я использую Akka 1.1.3.

Ответы [ 2 ]

2 голосов
/ 27 августа 2011

Дистанционное наблюдение работает только с управляемыми клиентом удаленными участниками для серии Akka 1.x.

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

1 голос
/ 27 сентября 2011

Вы можете подумать о том, чтобы установить балансировщик нагрузки HTTP перед экземплярами Akker Microkernel, работающими с Mist, это будет соответствовать тому, что ваша группа делает с «шлюзами Apache».

Другим подходом было бы выставление удаленных акторов на числоэкземпляров, а затем использовать LoadBalancer Akka или пул акторов для отправки сообщений, см. здесь

Второй подход немного затруднителен, если у вас есть динамический пул машин, потому что пулустройств хочет быть указан программно.Akka 2.0 решает эту проблему с помощью поддержки кластера, настроенной в файле akka.conf.

Что касается даты выпуска 2.0, то, что стоит 1.2, было недавно выпущено 2011-Sep-19.

...