Я хотел бы использовать ZMQ для реализации (в python) брокера и клиента, который обрабатывает запрос-ответ адресованным сущностям асинхронно. Клиент содержит функциональные возможности для выполнения как запросов, так и ответов (единственное, что отсутствует, - это точный тип/тип сокета).ZMQ Python Request Reply Broker для адресованных асинхронных запросов
Запрос может блокироваться, но сторона ответа должна иметь возможность обрабатывать параллельные (потоковые) запросы по мере их поступления. (То есть REP-сокет недостаточно хорош, так как он требует отправки до следующего получения)
Он должен пройти через посредника, так как существует множество возможных объектов, которые могут выполнять запросы и ответы, и я хочу только привязать определенное количество портов (не к одному объекту).
Entity1 Broker Entity2
REQ ------------- ROUTER ?????? -------------- ??????
Entity1 будет знать идентификатор entity2 и использовать, чтобы убедиться, что запрос был сделан на entity2 специально. Может быть любое количество объектов, но все объекты, которые должны отвечать на запросы, будут регистрировать идентификаторы.
Я пробовал с ДИЛЕРОМ на правой стороне брокера выше, но тот будет отправлять запросы только кругом.
Так кто-нибудь знает хороший образец/набор сокетов, я мог бы использовать для асинхронного обращения к определенному объекту?
Резюме:
- Блокирование по запросу стороны
- Брокер/прокси для связывания фиксированного количества портов
- Отвечающему гнездо должно быть специально рассмотрены в запрашивающей
- Резьбовая ответы (Ответная сторона может принимать и обрабатывать параллельных запросов)
Я читал руководство ZMQ довольно подробно, но я не нашел реального хорошего шаблона для обращения к конкретным сокетам через брокера, поэтому любая помощь очень ценится.
Спасибо! Я столкнулся с той же проблемой, и ваш ответ помог мне. – gar