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>