реализация модели с клиентами, периодически отчитывающимися перед сервером - PullRequest
0 голосов
/ 19 сентября 2019

У меня распределенная система с ~ 2000 узлами.Я хочу, чтобы эти узлы периодически (каждые 5 ~ 10 секунд) сообщали о некоторых метаданных (ЦП, памяти и т. Д.) Серверу, чья работа немного обрабатывает эти метаданные, а затем записывает их в базу данных в памяти на сервере.

Я думаю, как мне реализовать эту модель клиент-сервер.Я могу потенциально реализовать некоторые API на стороне сервера, и клиенты будут периодически выполнять вызов RPC.Если я сделаю это, какую основу я могу использовать для достижения этой цели?Для протокола транспортировки, я думаю, что я буду использовать UDP, учитывая, что меня не слишком заботит потеря пакета.Низкая задержка здесь важнее.Я предпочитаю язык Java.

Я также думаю, могу ли я просто установить сокетные соединения между сервером и каждым узлом?Каждый узел может отправлять сообщения через соединение на основе формата protobuf?Этот метод звучит более эффективно.Тем не менее, если имеется несколько классов protobuf, для сервера необходимо выяснить, как преобразовать двоичный файл обратно в правильный класс protobuf. * ​​1005 *

Я думаю, что это очень часто используемая модель.Какова лучшая практика реализации этого здесь?

...