Где менеджер соединений помещается в рельсы? - PullRequest
3 голосов
/ 04 октября 2011

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

Для этого прокси должен постоянно поддерживать открытые соединения с серверами. Для этого я создал фоновый процесс, используя daemonz , который принимает входящие соединения от серверов и порождает потоки, которые постоянно прослушивают сокеты.

Теперь у меня две проблемы: мне нужно иметь возможность отправлять сообщения на эти сокеты с моих контроллеров rails и мне нужно знать, какой сокет использовать, чтобы добраться до нужного сервера. Я планировал использовать класс ConnectionManager, чтобы позаботиться об этом для меня, но я не знаю, где такой класс вписывается в структуру rails, и я не знаю, как сделать объект и сокеты доступными для обоих процессов. .

Это делает два вопроса:

  1. Куда относится диспетчер соединений?
  2. Как разделить диспетчер соединений и сокеты между процессами?

Если вы знаете только ответ на первый вопрос, пожалуйста, продолжайте и ответьте. Возможно, мне следует создать отдельный пост для моего второго вопроса.

1 Ответ

0 голосов
/ 17 мая 2012

Это не похоже на полезную вещь для сборки в Rails / Ruby.

Что может быть более полезным, так это приложение администратора Rails, которое настроило существующий балансировщик нагрузки / прокси, такой как haproxy, под одеялом.

В приложении Rails вы можете отобразить серверы / порты / конфигурацию, а затем спроецировать их в конфигурацию haproxy и перезапустить балансировщик нагрузки.Отличным местом для начала был бы гем haproxy-tools , который позволяет вам анализировать / генерировать файл конфигурации haproxy.

Нет смысла переписывать вашу собственную загрузкуБалансировщик и Ruby / Rails - плохой технологический стек, даже если вы собираетесь это сделать.

...