Задача: есть n (идентичных) запущенных серверов. Нужно собрать статистику о них. Статистика вида: 1. [Хост][идентификатор сервера] ... n. [Хост][идентификатор сервера] Для этого разрабатывается дополнительное приложение, называемое admin. Теперь собстно как это может работать. Вариант 1. admin через заданные промежуток времение рассылает по сети multicast UDP сообщение, с указание своего iport сервер случаешь сеть, после того как получают этот UDP пакет, отправляется ему свой UDP с указанием данных. Вариант 2. Каждый из серверов время от времени делает multicast UDP рассылку с указание нужных данных. admin слушает сеть, и после получение UDP обновляет свою статистику. Собстно нужно вытесать все подводные камни в каждом из случаев. Итак что я уже надумал: Вариант 1. Преимущества: 1. в случаем изменения временного интервала рассылки мультикастов, перезапускать нужно только admina. 2. admin легко ведет статистику всех серверов от которых получает ответы. В случае если на определенном этапе от какого то из серверов не был получен ответ, admin может инициировать повторный запрос этому серверу дабы убедится что пакет не был потерян и сервер действительно выключен. Недостатки: 1. Для получения статистики нужно выполнить две пересылки UDP, от admina к серверу, от сервера к админу. Вариант 2. Преимущества: 1. один этап пересылки UDP. От сервера adminу Недостатки: 1. Для изменения временного интервала рассылки необходимо перезапускать все сервера. 2. Не совсем понятно как вести статистику. Вернее то как принимать решение о том что сервер n уже недоступен. Например: если в течении какого то времени от сервера не было пакета UDP значит сервер уже не работает. Но для этого необходимо что бы время задержки на каждом из серверов было одинаковым, а это условие может нарушится из за п.1
Первый вариант выглядит более верным. И ты кстати тоже выделил в нем только один недостаток, и то это может быть даже не недостаток если опрашивать придется не так уж часто.
я старался делать все объективно. Так как мне нужно будет отчитываться о принятом решении И вообще не думаю что отправка одного или двух UDP пакетор хоть как то может повлиять. А вот то то для второго варианта, я пока так и не смог придумать 100% правильный способ определение что ранее активный сервере больше недоступен. Но это не означает что способ плох, это означает что я просто не смог придумать "как" это сделать.. Предположение о интервале опроса я пока делать не могу, это все равно будет задаваться через конфиг. Но было бы разумно предположить что все это должно работать в режиме реального времени.