On 06/02/2015 07:09 AM, Noel OConnor wrote:
Hi,
I'm going through the docs for the dispatch router and I've a few basic
questions around entries the qdrouterd.conf file
[1] In the router sections a router can have a mode of endpoint but this
mode isn't explained.
The "endpoint" mode is not relevant to the actual router. It is there
to support another project that uses the dispatch library as a
dependency. This should be removed from the docs/config-spec.
[2] In the listener and connector sections, they both can have roles which
are on-demand. Does this mean these listeners and connectors are
started/stopped arbitrarily and is there some sort of config for this ?
The on-demand role is only meaningful for connectors. It means that the
outgoing connection is only established when it is needed. On demand
connectors are indexed by a name and the name can be used in either a
waypoint or a linkRoutePattern. Both waypoints and linkRoutePatterns
can have an external container (e.g. a broker) associated with them.
LinkRoutePatterns establish the on-demand connection at startup.
Waypoints are supposed to establish the connection only when there are
subscriptions from or messages sent to the connected container.
[3] The waypoints and fixed addresses have a phase element. Is the phase
concept explained somewhere ?
These are probably not sufficiently explained. Also, waypoints are
somewhat experimental. We plan to improve them and make them easier to
configure/provision.
The phase concept is key to waypoints because waypoints define a
multi-segment path for an address. For example, a waypoint can
represent a queue on a broker. There are two routing paths for this
queue: messages flowing _to_ the queue, and messages flowing _from_ the
queue. Messages to the queue are phase 0 and messages from the queue
are phase 1.
Please note that the address phases are not visible to endpoints using
the router network. They are only used internally to route messages
from endpoint to waypoint (to other waypoints) and to consumers.
[4] The differences between linkRoutePattern and Waypoint seem subtle (at
least to me). When would you use one over the other ?
Both of these features are used to provide remote (cross-network) access
to things like brokers, but they do it in fundamentally different ways.
Link routing does the routing at the time the link is attached (like a
virtual circuit to a remote queue). Waypoints do the routing on each
individual message.
Link routing provides the full link protocol across the network (i.e.
flow control, message settlement, etc.). Waypoints provide a way to
implement distributed queues (i.e. messages sent to the nearest waypoint
or spread across multiple waypoints with the same address).
If the link protocol is important (high-resolution flow control,
reliable messaging/exactly-once, transactions, strictly in-order
delivery), then link-routing is the appropriate choice. If these are
less important, waypoints can provide a more flexible way to provide
scale and elasticity.
thanks for your help
regards
Noel
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]