Я смотрел на сокеты ZMQ PUSH/PULL, и хотя мне очень нравится простота (особенно по сравнению с пользовательской фрагментацией/ack, которую я реализую прямо сейчас в системе через сокеты UDP), я бы хотел для пользовательской балансировки нагрузки вместо наивного кругового вращения (я считаю), который используют сокеты ZMQ PUSH/PULL.Розетки ZMQ с пользовательской балансировкой нагрузки
Я новичок в ZQM и не знаю, как я могу реализовать его, используя гнезда ZMQ, и если это вообще возможно. То, что я бы идеально хотел, - это порция гнезда PUSH (или другого типа сокета) определяет (на основе сообщений и т. Д.), Какой машине отправить сообщение.
Так что мои вопросы:
- Возможно ли это?
- Если да, то какой шаблон ZMQ будет работать лучше всего для него?
- Как использовать эти сокеты?
Итак, скажем, у меня есть один «мастер», отправляющий работу на несколько рабочих узлов ... У меня бы были как ROUTER, так и «клиентские» REQ-сокеты (ы) на одном и том же узле справа? И балансир нагрузки просто подобрал бы соответствующий рабочий узел? – mtahmed
@mtahmed Нет, сервер ROUTER, рабочие (клиенты) REQ или предпочтительно async DEALERs, и они находятся на отдельных узлах, а не на одном узле. – raffian
Вы можете иметь их везде, где вам больше всего подходит, zmq все равно. Если ваши рабочие находятся на нескольких узлах, тогда балансировщик нагрузки не может находиться на том же узле, что и все ваши рабочие. – minrk