Я играю с недавно выпущенным Akka.Net 1.0 (поздравляю с релизом!), Поэтому для меня это совсем не ново, но я уверен, что кто-нибудь с опытом JVM Akka может также перезвонить поскольку в этом вопросе нет ничего, зависящего от времени выполнения.Перекрестные звонки с Akka
Рассмотрим несколько (для примера, 2) отдельных сервисов, которые являются частью более крупной системы/приложения. Эти услуги обычно выполняют свои собственные действия, но иногда необходимы перекрестные звонки. Предположим, что Service 2
может быть автономным и имеет действие GetStuff
. Service 1
имеет действие DoSomething
, которое должно получить результат GetStuff
действий первым.
Каков предпочтительный способ обработки такой ситуации, когда обе службы могут быть развернуты отдельно и на разных машинах?
Как я уже сказал, я много о Акку не знаю, но копаться в примерах, документы и источник я нашел два варианта:
- Remoting. Отдельные актерские системы в своих собственных службах используют
Remoting
для полученияActorSelection
с удаленного хоста. Это было бы почти то же самое, что и Remoting docs example, только две актерские системы были бы равны «клиентам». - Кластеризация. Я пытаюсь обернуть голову вокруг, и теперь я могу понять, как настроить отдельную кластерную службу, которая просто установила бы систему кластеров, создав простой исполнитель-слушатель, чтобы узел семени мог быть правильно инициализирован (?). Затем каждая отдельная актерская система, созданная в своих собственных службах, присоединяется к упомянутой кластерной системе под другой ролью.
Возможно, есть еще одно решение, о котором я не знаю ...?
Лично кластерное решение кажется сложнее понять и настроить на первый взгляд, но, возможно, есть некоторые существенные преимущества, которые я не вижу прямо сейчас.
Чтобы повторить, что является предпочтительным способом обработки такой ситуации и на что я должен обратить внимание?
Спасибо! Это почти идеально, очень близко к тому, что я хочу, хотя это немного сложно. Во всяком случае, кажется, что все работает нормально, даже если мое собственное приложение-образец на основе этого не работает :) Я предполагаю, что у меня что-то не получается, мне придется все разобраться, есть много чего, Здесь пока что. Из всего, что я собираю, что Clustering должен быть стандартным способом подхода к этой проблеме, спасибо! –
Быстрый и маленький вопрос. Я попытался сузить свою проблему с «неработоспособной», и у меня довольно небольшой и автономный пример, когда вызов выбора актера из другого процесса ничего не делает (но работает из одного и того же процесса) - где было бы лучше всего связать репо, чтобы я мог спросить, как настроить кластер? Я попытался адаптировать конфигурацию из примера, который вы дали, но пока немного «слишком много» ... :) –