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]

Reply via email to