Hi all,

I would like to understand better how Link routing works.

I have a Java Qpid JMS client, a Qpid router mesh (4 interior routers + 2 edge) 
and two Artemis brokers on the other side of the mesh.
I define link routing in the Interior routers using a prefix (so it's not 
address specific, to make it more flexible), e.g.:

linkRoute {
    prefix: telemetry
    direction: in
}

linkRoute {
    prefix: telemetry
    direction: out
}

Configuration on the edge routers is standard for link routing and everything 
works.

Now I expect, that when I subscribe to a topic starting with "telemetry." on 
Artemis, the mesh will determine the optimal path at that moment in time and 
this specific route will be there until I disconnect.
Is this how it really works? Or can the mesh re-calculate a more optimal route 
later and change the path of the messages?

This question is primarily because of the following:
Imagine I have 2 clients and 2 brokers. These are Link routing paths as 
automatically determined by the mesh on the first connect:
(Client 1) -> (Router A) -> (Router B) -> (Router C) -> (Broker 1)
(Client 2) -> (Router D) -> (Router B) -> (Router E) -> (Broker 2)
As you can see both paths intersect at the Router  B.

I start sending a moderate number of messages along the first path, everything 
works.
Now I start sending a massive number of messages through the second Link routed 
path. The routers along the path become overloaded, including the Router B.
I would really like to see that the mesh notices this and reroutes messages 
flowing along the first Linked path using some other Router F, which is free, 
instead of the overloaded Router B, so that Client 1 doesn’t experience 
throughput degradation. But this is not possible, or is it?
Another consideration: under heavy load I might want to scale this up and add 
more routers to the network (new nodes, not new pods). With Link routing this 
wouldn't seem to make any sense because the path is "set in stone" and cannot 
be changed, right? I add more Routers G, H, I, etc, but the Router B is still 
being used without any change.

Could you please comment if I understand this correctly?
Is there any possibility to make Link routing dynamic and re-routable (more or 
less as message routing)?

Thank you.





________________________________

Deze e-mail, inclusief eventuele bijlagen, is uitsluitend bestemd voor (gebruik 
door) de geadresseerde. De e-mail kan persoonlijke of vertrouwelijke informatie 
bevatten. Openbaarmaking, vermenigvuldiging, verspreiding en/of verstrekking 
van (de inhoud van) deze e-mail (en eventuele bijlagen) aan derden is 
uitdrukkelijk niet toegestaan. Indien u niet de bedoelde geadresseerde bent, 
wordt u vriendelijk verzocht degene die de e-mail verzond hiervan direct op de 
hoogte te brengen en de e-mail (en eventuele bijlagen) te vernietigen.

Informatie vennootschap<http://www.ns.nl/emaildisclaimer>

Reply via email to