Erlang распределенная банковская система - PullRequest
1 голос
/ 24 июля 2011

Я пытаюсь проиллюстрировать концепцию распределенных приложений, используя Erlang.Моя система в настоящее время имеет один сервер и один банкомат.Я стараюсь сделать его максимально простым.

На данный момент мое приложение работает локально.Я использую gen_server для клиент-серверных отношений между банковским сервером и банкоматом.У меня также есть модуль gen_fsm, чтобы предложить различные состояния, в которых находится мой банкомат.Для хранения любых данных я использую модуль dict (я не хочу усложнять использование баз данных).Чтобы поддержать процессы (gen_server и gen_fsm), я использую процесс supervisor.Я обернул все модули как приложение, но пока все локально.Любые идеи будут высоко оценены.

Я думал о том, чтобы запустить одно и то же приложение на двух разных узлах и проиллюстрировать распределенную концепцию для использования какого-либо механизма переключения при отказе / переключения, но у меня нет идей, какие модули использовать.

  • Обязательно ли использовать целевые системы? (В какой-то момент я должен выполнить горячее обновление приложения)
  • Какой правильный порядок действий для этих вещей: сначала обновитьа затем распространять?

Я был бы очень признателен, если бы кто-то мог дать мне некоторые идеи о том, как выполнить все эти вещи.

1 Ответ

1 голос
/ 24 июля 2011

Я никогда не пробовал сам, но документы, кажется, указывают на: Erlang Release Handling (11.3 Распределенные системы).

Это действительно короткий параграф, показывающий команду sync_nodes, яПредлагаю вам прочитать всю главу, потому что я заметил, что понятия параллелизма и распределения часто бывают в Erlang настолько убедительными, что подобные вам проблемы уже решены и включены в OTP.

Кстати, в руководстве пользователя Erlang также естьЦелая глава, посвященная Распределенным приложениям , которая, кажется, связана с параметрами конфигурации распределенных приложений, я думаю, что эти два вопроса должны помочь.

Надеюсь, это поможет, если вам нужна дополнительная помощь, просто спросите!

...