Я кодирую планировщик рабочей нагрузки.Я хотел бы, чтобы мой программный продукт был одноранговым планировщиком, т.е.узел знает только некоторых соседей (других узлов) и использует их для доступа к другим узлам.
Каждый узел будет иметь свою собственную таблицу взвешенной маршрутизации для отправки сообщений другим узлам (в основном на основе количества прыжков),то есть.«Я хочу, чтобы мастер дал мне свое расписание» или «доступен ли ресурс A на узле B?»: какой сосед ближе всего к моей цели?
Например, я написал свой собственный протокол маршрутизации, используя XML-RPC
(xmlrpc-c
) и std::multimaps
/ std::maps
.
IЯ думаю об использовании ZeroMQ
для оптимизации моих потоков данных:
- организация очереди может снизить нагрузку на сеть между узлами;
- подписки могут использоваться для публикации обновлений.
Как следствие:
- Мне нужно будет открыть столько сокетов, сколько я буду создавать новые типы соединений;
- Каждый узел должен быть клиентом,сервер, издатель, подписчик, брокер и каталог;
- Я не уверен, что моя «одноранговая архитектура» совместима с основным назначением ZeroMQ.
Как вы думаете, ZeroMQ
может быть полезным понятием для использования?