Pull to refresh

Up the pool

Reading time 1 min
Views 1.8K
Original author: Guy Wiener
Я программист. Поэтому, меня всегда потрясают вещи, которые «просто работают». Это чувство у меня было и когда я знакомился с Erlang Pool. Настройка требует некоторого внимания, но после, механизм оказывается «оскорбительно» простым.

Для запуска Erlang пула Вам необходимо следующее:
  • Набор компьютеров с одинаковым Erlang окружением, один из которых будет главным
  • Все компьютеры должны иметь код, который будет запущен
  • Файл с хостами Erlang на главном компьютере (обычно ~/.hosts.erlang)
  • Все компьютеры должны иметь одинаковые Erlang-cookie (обычно ~/.erlang.cookie)
  • Главный компьютер должен иметь RSH или SSH no-password-required доступ ко всем остальным компьютерам
  • Оболочка Erlang на главном компьютере должна быть именованной, т.к. она создает ноду

Вот и все. Как только все готово, запустите на главном компьютере оболочку и выполните:

pool:start(Name).

И вот! Вы имеете свой собственный Ad-hoc, load-balancing, распределенный пул компьютеров. Вам не нужна запускать ноды на остальных компьютерах: Erlang сделает это за Вас. Следующая команда на главной ноде запустит процесс с функцией и аргументами на наименее загруженной ноде:

pool:pspawn(Mod, Func, Args).

Я назвал это «оскорбительно простым» потому, что это и есть оскорбление все раздутых, коммерческих, дорогих BPEL-for-Web-Services-on-J2EE (or .NET) серверов приложений и т.д. Мы слишком привыкли к «графическим редакторам, которые генерируют XML, который генерирует код, который запаковывается с манифестом и отправляется на специальный сервер». Когда кто-либо появляетcя и говорит «Эй, оболочка и plain-text конфиг это все тебе нужно», это немного шокирует.

Keep It Simple, Stupid.
Tags:
Hubs:
+39
Comments 13
Comments Comments 13

Articles