[zmq] Implement outgoing queue in green version of zmq driver
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
oslo.messaging |
Fix Released
|
Undecided
|
Oleksii Zamiatin |
Bug Description
Despite zmq claims DEALER socket as reliable one:
according to the RFC http://
* "SHALL NOT discard messages that it cannot queue."
but also:
* " SHALL block on sending, or return a suitable error, when it has no available peers."
we definitely face blocking of the main thread (especially if using eventlet it's critical issue) when trying to send a message before consumer appears. To avoid this and keep reliable messaging we need to provide outgoing queue(s) where to put all outgoing messages.
This outgoing queue (or outgoing poller which contains the queue) should be similar to incoming GreenPoller which does the same but for incoming messages. We probably need to refactor-rename existing pollers that way they can take consistent place in green-pollers hierarchy.
Messages should be removed from outgoing queue when their delivery has been acknowledged by consumer side.
description: | updated |
Changed in oslo.messaging: | |
status: | New → Confirmed |
Changed in oslo.messaging: | |
assignee: | nobody → Oleksii Zamiatin (ozamiatin) |
status: | Confirmed → In Progress |
summary: |
- Implement outgoing queue in green version of zmq driver + [zmq] Implement outgoing queue in green version of zmq driver |
Changed in oslo.messaging: | |
milestone: | none → 2.6.0 |
status: | Fix Committed → Fix Released |
Fix proposed to branch: master /review. openstack. org/227913
Review: https:/