On 03/28/2014 01:36 PM, Chris Richardson wrote:
Ah, now we are really opening Pandora's box! ;)
The term "client" here is actually quite a simplified term and actually
refers loosely speaking to a system managing a number of products on
that... client. Both the management system and the products should be
individually identifiable and addressable over AMQP; it should also be
possible to address them in groups. Furthermore the client system will
typically be connected over an unreliable network link and the messaging
system is expected to guarantee delivery. Given these constraints I
envisage each client system having at least one local exchange (and queues
to cope with disconnections), and most probably it/they will be topic
exchanges to support the addressing functionality. However I'm very new to
the AMQP routing and addressing concepts so I may be misguided.
Even with dynamic routing, you need to manually set it up per exchange
(what it then does is manage the set of routing keys in use for
inter-broker links, based on the interest expressed by subscriptions).
If you are using topic exchanges you might be able to simply forward all
messages for a given exchange through from A->B->C, which you can do by
simple static routes per exchange (not actually any more management
operations than making setting up dynamic routing for the same
exchange). The static routes *should* work ok with 'push' routes (though
I will warn that those are not as well used), allowing you to choose the
direction of the TCP connection independent of the direction of message
flow.
Also, without wanting to confuse the picture too much, I'll just note in
passing that the recent developments around AMQP 1.0 may be of some
interest to your scenario. First off there is the 'Dispatch Router'
component. This is superficially similar to a broker, but it only
forwards messages it never accepts responsibility for them. It could be
used as the 'server' broker in your setup, with the 'clients' both
connecting in and sending or receiving to/from that. You could use this
in conjunction with qpidd (which supports establishing basic AMQP 1.0
links to/from other processes), or depending on your use case there may
not be a real need for brokers at all.
(A future release of the router will be able to establish links out to
other 1.0 capable brokers (or other types of 'thing') itself making it
even more flexible/powerful).
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]