Description
When a router makes a connection to a broker (using a configured connector), the broker may provide alternate connection information for use in a failure scenario. The router must honor this alternate connection data when the primary connection is lost.
For example, if the router opens a connection to the broker and the broker responds with an open frame like the following -
[0x7fc8b000a3e0]:0 <- @open(16) [container-id="Router.A", max-frame-size=16384, channel-max=32767, idle-time-out=8000, offered-capabilities=:"ANONYMOUS-RELAY", properties={:product="qpid-dispatch-router", :version="1.0.0", :"failover-server-list"=[{:"network-host"="second-host", :port="25000"}, {:"network-host"="third-host", :port="5671", :scheme="amqps"}]}]
notice that the broker sends a failover-server-list of
"failover-server-list"=[{:"network-host"="second-host", :port="25000"}, {:"network-host"="third-host", :port="5671", :scheme="amqps"}]
The router should store this alternate connection information and retry these hosts when the original connection goes down.
The following should be the order of operations
- The original connection goes down, try connecting with the original connection information one more time. If that failed, try connecting with the alternate connection information. If the original and the alternate failed, keep going round robin between alternate and original until you get a successful hit.
- If there is no alternate connection information, keep on trying to connect using the original connection information (which is what is currently happening).
Attachments
Issue Links
- is related to
-
DISPATCH-879 Document how Dispatch Router uses alternate failover URLs
- Closed
- links to