[zeromq-dev] Identities & PUB/SUB
Pieter Hintjens
ph at imatix.com
Tue Apr 5 18:18:44 CEST 2011
On Tue, Apr 5, 2011 at 10:48 AM, Ian Barber <ian.barber at gmail.com> wrote:
> I don't think I'd ever actually used them on PUSH/PULL. I do know people are
> using them in PUB/SUB though and removing them will break the application
> (as they'll have to implement a sequence and REQ/REP backchannel), so I
> think either a) you shouldn't change PUB/SUB for the same reasons you
> shouldn't do XREP/XREQ or b) you should change XREP/XREQ for the same
> reasons you'd change PUB/SUB.
The arguments for/against seem a bit different in each case. For
pub/sub, durable sockets are a direct threat to publisher stability.
This can be solved by setting limits, timeouts, etc. Pub/sub faces
quite a range of threats that aren't but should be handled, durable
sockets only makes them worse.
For ROUTER, the problem is the use of an X- socket type intended to
stay behind the scenes. However this has nothing to do with explicit
identities, as I've explained. The fact is that unless/until 0MQ gives
applications explicit access to:
* when a peer connects
* the routing algorithm
* when a peer disconnects
then ROUTER is the *only* way to implement a large range of essential patterns.
We used to have a lot of threads "how do I do xyz" and the answer was
"you can't, with 0MQ", until we began to properly document and exploit
XREP sockets as routers.
Cheers
Pieter
More information about the zeromq-dev
mailing list