Mongrel2 send_spec и recv_spec
Я только начал возиться с Mongrel2, все учебники шли отлично, пока я не начал указывать обработчики Mongrel2 send_spec и recv_spec на адрес, отличный от localhost, например, на второй компьютер в сети.
Я начал получать эти ошибки:
errno: Resource temporarily unavailable) Failed to bind send socket trying again for: tcp://xxx.xxx.xxx.xxx:49901
Мой вопрос: когда есть два узла A и B, где A - сервер Mongrel2, а B - "рабочий" для одного из обработчиков A, какие адреса будут помещаться в send_spec и recv_spec файла.conf A?
Извините, если это наивный вопрос, это меня так запутало.
1 ответ
Жми (send_spec
) и SUB (recv_spec
) порты на NodeA (Mongrel2 Server) являются связующими сокетами, поэтому вы должны использовать tcp://*:<port>
, Используя *
По адресу вы можете получать соединения с любого интерфейса.
Ваш код обработчика - там, где нужен конкретный адрес. Я использую контейнеры Docker для запуска своих обработчиков Python, поэтому мне всегда нужно использовать конкретный IP-адрес для контейнера, на котором запущен сервер Mongrel2 tcp://172.16.1.?:<port>
,
Если все это правда:
- Контейнеры Docker могут общаться друг с другом
- Вы используете правильный IP и порты
- Спецификации PUSH и SUB получают со всех интерфейсов
Ваш обработчик должен иметь возможность подключения.