Мультисерверный IPC
Пусть у нас есть несколько демонов, которые исполняют один и тот же бинарник (например some_d
), хоть 50, все они запущены на одной системе.
Нужно сделать так, чтобы можно было послать им всем какие либо-команды через консоль по-типу systemctl, т.е:
- Запустили 50
some_d
в фоновом режиме - Запустили с консоли
some_d -s ps
с консоли, чтобы получить на консоль список всех этих запущенных модулей. - Все 50 модулей получают сообщение и посылают обратную инфу о себе клиенту.
- Клиент получает 50 или меньше сообщений и выводит инфу в консоль, завершает работу.
Хотелось бы сделать это через сокеты, потому что в будущем возможно это распространится не на систему, а на кластер.
То есть тут обратная задача: У нас 50 серверов и один клиент, который должен их всех опросить.
Но как такое сделать так, чтобы не пришлось клиенту указывать все 50 портов, куда послать запрос, а сделать всё через один, желательно захардкоженный, TCP порт?