Алгоритм сервера для автоматического обнаружения узлов? - PullRequest
2 голосов
/ 12 сентября 2011

долгое время читатель, впервые задающий вопрос здесь.

Ситуация: у нас есть архитектура сервера и узлов, где узлы могут находиться на одном или другом компьютере и использоваться для балансировки нагрузки. В настоящее время при настройке узлы знают, где находится сервер (IP, порт), и при запуске они начинают периодически отправлять HTTP-запросы (каждые T секунд) на сервер, чтобы уведомить его об их контактной информации (IP, порт, ...). На сервере есть список доступных узлов, и как только узел сообщает, его информация сохраняется в списке. Если узел не может сообщить в течение 2 * T секунд, его запись удаляется из списка. Таким образом, сервер имеет достаточно актуальную информацию о том, что доступно. Эта схема оказалась намного лучше предыдущей, где использовался файл конфигурации, и нам часто приходилось сталкиваться с неправильными конфигурациями.

Новое условие: из-за проблем безопасности (не знаю деталей) нам нужно заставить узлы замолчать - они не должны инициировать соединение с сервером, могут только принимать и отвечать.

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

Спасибо.

1 Ответ

1 голос
/ 12 сентября 2011

Если ваши узлы не указывают серверу, что они существуют, ваш сервер должен будет предположить, что они существуют в определенных местоположениях, а затем опросить эти местоположения, чтобы определить, работает ли узел вверх или вниз.

Это означает, что ваш сервер необходимо будет настроить вручную, чтобы получить предварительные сведения о том, где расположены узлы. В случае, если серверу не сообщили о существовании узла, он не будет использовать его, даже если узел доступен и свободен.

По сути, если можно выбрать сетевой трафик от узла к серверу балансировки нагрузки, то можно выбрать сетевой трафик от сервера балансировки нагрузки до рабочего узла. Так что с новой архитектурой я бы не ожидал повышения безопасности.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...