Last week I had a thread with lots of little questions around Dispatch
Routers. Ted Ross has been awesome to answer most of those. As a result I
feel like I have my QDR config shaping up a bit better. HOWEVER with some
more very focused questions I thought it would be best to start a new
thread. The problem I am seeing is that the routers are not distributing
the message load across other brokers on the network. Here is a little
diagram:
RouterA-03 ----> ArtemisBrokerA
|
|
|
\/
RouterB-05 ----> ArtemisBrokerB
*NOTE: i am currently using Qpid Dispatch Router from a RHEL repo. v 0.7.0*
Connections from clients come in through an F5 VIP which forwards those
connections to either host L-03-A or L-05-B. Each of those hosts have a
Qpid Dispatch Router installed in front of an Artemis broker. dispatch
router on L-05-B is listening on an additional port that dispatch router
L-03-A connects to for inter-router communication.
If I go around my F5 VIP so i know I am connecting straight to L-05-B and I
send any number of messages into the router there all of those messages end
up in ArtemisBrokerB. I was hoping that some would go to BrokerB and some
would go via RouterA over to BrokerA. Now when BrokerB is taken down
CURRENTLY the messages sent to Router L-05-B ARE routed through Router
L-03-A and then out to ArtemisBrokerB. (Currently receiving messages pull
them in from both hosts so my questions only lies in message production at
the moment.)
Do you agree that with this configuration you would expect messages to be
load balanced between the two routes? I would like to paste in some of our
config and results from running qdstat. If you observe something that is
misconfigured and are able to highlight it i would be very appreciative.
First the config files for QDR instances. I tried my best to scrub them of
specific IPs and hostnames.
*L-03-A qrouterd.conf*
*router {*
* mode: interior*
* id: Router.A*
*}*
*log {*
* module: DEFAULT*
* enable: debug+*
* timestamp: yes*
*}*
*sslProfile {*
* name: my-ssl*
* certFile: /opt/org/my-ssl-info.pem*
* keyFile: /opt/org/my-ssl-info.pem*
* password: hellokitty42*
*}*
*listener {*
* role: normal*
* host: 0.0.0.0*
* port: 5671*
* authenticatePeer: no*
* saslMechanisms: ANONYMOUS*
* sslProfile: my-ssl*
*}*
*connector {*
* name: local-artemis*
* role: route-container*
* host: L-03-A*
* port: 61616*
* saslMechanisms: ANONYMOUS*
*}*
*connector {*
* name: routerb*
* role: inter-router*
* host: L-05-B*
* port: 6671*
* saslMechanisms: ANONYMOUS*
*}*
*address {*
* prefix: foo.#*
* waypoint: yes*
* distribution: balanced*
*}*
*autoLink {*
* addr: foo.bar*
* dir: in*
* connection: local-artemis*
*}*
*autoLink {*
* addr: foo.bar*
* dir: out*
* connection: local-artemis*
*}*
*L-05-B qrouterd.conf*
*router {*
* mode: interior*
* id: Router.B*
*}*
*log {*
* module: DEFAULT*
* enable: debug+*
* timestamp: yes*
*}*
*sslProfile {*
* name: my-ssl*
* certFile: /opt/org/my-ssl-info.pem*
* keyFile: /opt/org/my-ssl-info.pem*
* password: hellokitty42*
*}*
*listener {*
* role: normal*
* host: 0.0.0.0*
* port: 5671*
* authenticatePeer: no*
* saslMechanisms: ANONYMOUS*
* sslProfile: my-ssl*
*}*
*listener {*
* role: inter-router*
* host: 0.0.0.0*
* port: 6671*
* authenticatePeer: no*
* saslMechanisms: ANONYMOUS*
* sslProfile: my-ssl*
*}*
*connector {*
* name: local-artemis*
* role: route-container*
* host: L-05-B*
* port: 61616*
* saslMechanisms: ANONYMOUS*
*}*
*address {*
* prefix: foo.#*
* waypoint: yes*
* distribution: balanced*
*}*
*autoLink {*
* addr: foo.bar*
* dir: in*
* connection: local-artemis*
*}*
*autoLink {*
* addr: foo.bar*
* dir: out*
* connection: local-artemis*
*}*
*L-03-A ~]$ qdstat -b:5671 -g*
*Router Statistics*
* attr value*
* =====================*
* Mode interior*
* Area 0*
* Router Id Router.A*
*L-05-B ~]$ qdstat -b:5671 -g*
*Router Statistics*
* attr value*
* =====================*
* Mode interior*
* Area 0*
* Router Id Router.B*
*L-03-A ~]$ qdstat -b:5671 -c*
*Connections*
* Id host container role
dir security authentication*
*
==================================================================================================================*
* 14 L-03-A:61616 L-03-A
route-container out no-security anonymous-user*
* 107132 L-05-B:6671 Router.B
inter-router out no-security anonymous-user*
* 107267 127.0.0.1:37916 <http://127.0.0.1:37916>
180851ba-7ce4-44d0-a937-97de16e781c4 normal in no-security
anonymous-user*
*L-05-B ~]$ qdstat -b:5671 -c*
*Connections*
* Id host container role
dir security authentication*
*
==================================================================================================================*
* 1 L-05-B:61616 L-05-B
route-container out no-security anonymous-user*
* 2 10.<ip>.32:57182 Router.A
inter-router in no-security anonymous-user*
* 143 127.0.0.1:48610 <http://127.0.0.1:48610>
93e6b3e3-443e-43d9-9c2c-0d648266ec19 normal in no-security
anonymous-user*
*L-03-A ~]$ qdstat -b:5671 -n*
*Routers in the Network*
* router-id next-hop link*
* ===========================*
* Router.A (self) -*
* Router.B - 0*
*L-05-B ~]$ qdstat -b:5671 -n*
*Routers in the Network*
* router-id next-hop link*
* ===========================*
* Router.A - 0*
* Router.B (self) -*
*L-03-A ~]$ qdstat -b:5671 --linkroutes*
*Link Routes*
*L-05-B ~]$ qdstat -b:5671 --linkroutes*
*Link Routes*
*L-03-A ~]$ qdstat -b:5671 --autolinks*
*AutoLinks*
* addr dir phs link status lastErr*
* ==========================================*
* foo.bar in 1 8 active*
* foo.bar out 0 9 active*
*L-05-B ~]$ qdstat -b:5671 --autolinks*
*AutoLinks*
* addr dir phs link status lastErr*
* ==========================================*
* foo.bar in 1 4 active*
* foo.bar out 0 5 active*
*L-03-A ~]$ qdstat -b:5671 -l*
*Router Links*
* type dir conn id id peer class addr
phs cap undel unsett del presett acc rej rel mod admin oper*
*
================================================================================================================================================*
* endpoint in 14 8 mobile foo.bar 1
250 0 0 80 0 80 0 0 0 enabled up*
* endpoint out 14 9 mobile foo.bar 0
250 0 0 40 0 40 0 0 0 enabled up*
* router-control in 107132 15
250 0 0 524 524 0 0 0 0 enabled up*
* router-control out 107132 16 local qdhello
250 0 0 527 527 0 0 0 0 enabled up*
* inter-router in 107132 17
250 0 0 0 0 0 0 0 0 enabled up*
* inter-router out 107132 18
250 0 0 0 0 0 0 0 0 enabled up*
* endpoint in 107336 33 mobile $management 0
250 0 0 1 0 1 0 0 0 enabled up*
* endpoint out 107336 34 local temp.liHSN39azHuUPkg
250 0 0 0 0 0 0 0 0 enabled up*
*L-05-B ~]$ qdstat -b:5671 -l*
*Router Links*
* type dir conn id id peer class addr
phs cap undel unsett del presett acc rej rel mod admin oper*
*
================================================================================================================================================*
* endpoint in 1 4 mobile foo.bar 1
250 40 0 0 0 0 0 0 0 enabled up*
* endpoint out 1 5 mobile foo.bar 0
250 0 0 0 0 0 0 0 0 enabled up*
* router-control out 2 6 local qdhello
250 0 0 524 524 0 0 0 0 enabled up*
* router-control in 2 7
250 0 0 527 527 0 0 0 0 enabled up*
* inter-router out 2 8
250 0 0 0 0 0 0 0 0 enabled up*
* inter-router in 2 9
250 0 0 0 0 0 0 0 0 enabled up*
* endpoint in 212 24 mobile $management 0
250 0 0 1 0 1 0 0 0 enabled up*
* endpoint out 212 25 local temp.BJPESwMGFo+7qiy
250 0 0 0 0 0 0 0 0 enabled up*
*L-03-A ~]$ qdstat -b:5671 -a*
*Router Addresses*
* class addr phs distrib in-proc local remote
cntnr in out thru to-proc from-proc*
*
==================================================================================================================*
* local $_management_internal closest 1 0 0
0 0 0 0 6 6*
* local $displayname closest 1 0 0
0 0 0 0 0 0*
* mobile $management 0 closest 1 0 0
0 9 0 0 9 0*
* local $management closest 1 0 0
0 0 0 0 0 0*
* router Router.B closest 0 0 1
0 0 0 19 0 19*
* mobile foo.bar 1 balanced 0 0 0
0 80 520 0 0 0*
* mobile foo.bar 0 balanced 0 1 1
0 0 40 0 0 0*
* local qdhello flood 1 1 0
0 0 0 0 269,611 269,622*
* local qdrouter flood 1 0 0
0 0 0 0 12 0*
* topo qdrouter flood 1 0 1
0 0 0 8,992 8,991 8,996*
* local qdrouter.ma <http://qdrouter.ma> multicast 1
0 0 0 0 0 0 4 0*
* topo qdrouter.ma <http://qdrouter.ma> multicast 1
0 1 0 0 0 3 0 3*
* local temp.u6NMF1AFV0JpdBi closest 0 1 0
0 0 0 0 0 0*
*L-05-B ~]$ qdstat -b:5671 -a*
*Router Addresses*
* class addr phs distrib in-proc local remote
cntnr in out thru to-proc from-proc*
*
=================================================================================================================*
* local $_management_internal closest 1 0 0
0 0 0 0 6 6*
* local $displayname closest 1 0 0
0 0 0 0 0 0*
* mobile $management 0 closest 1 0 0
0 9 0 0 9 0*
* local $management closest 1 0 0
0 0 0 0 0 0*
* router Router.A closest 0 0 1
0 0 0 6 0 6*
* mobile foo.bar 1 balanced 0 0 0
0 0 0 0 0 0*
* mobile foo.bar 0 balanced 0 1 1
0 0 0 0 0 0*
* local qdhello flood 1 1 0
0 0 0 0 570 571*
* local qdrouter flood 1 0 0
0 0 0 0 4 0*
* topo qdrouter flood 1 0 1
0 0 0 20 21 21*
* local qdrouter.ma <http://qdrouter.ma> multicast 1
0 0 0 0 0 0 4 0*
* topo qdrouter.ma <http://qdrouter.ma> multicast 1
0 1 0 0 0 0 0 1*
* local temp.xwHdS0zzku0s3lR closest 0 1 0
0 0 0 0 0 0*
is there something off in my configuration? or in my understand of QDR
netwokin just not up to snuff? should i care a little bit less about load
balancing because the VIP will round robin new connections out to different
codes?
Thank you so much for your time and insight