Yes, I could think of at least 3 cases where that would be useful:
1. For security reasons Core protocol is not exposed to clients and they need
to connect through different port than cluster connectors (AMQP, MQTT).
2. Clients connect through SSL, but cluster connector topology don't need SSL.
3. Clients connect through load balancer and external DNS is used, but the same
load balancer cannot be used internally and cluster connectors rely on internal
DNS.
Is it correct topology or not, I think it's debatable. Core clients do not have
this issue because usually connector and acceptor ports match in that case
(i.e. Core protocol is used for both, to form a cluster, and to serve external
clients). However, clients really connect to acceptors, not connectors. I
understand that every Artemis node knows only about his acceptors, so there is
probably no way to generate topology hostname list from the acceptor list. But
maybe there are better ways.
I will create a ticket in a few.
--
Vilius
>-----Original Message-----
>From: Justin Bertram <[email protected]>
>Sent: Tuesday, April 14, 2026 5:48 AM
>To: [email protected]
>Subject: Re: broker topology list for AMQP connections
>
>> Is there a way to send a correct broker topology port from the broker side
>without changes to the clients?
>
>In short, no, not for your use-case. As far as the broker is concerned, it is
>sending
>the correct topology to the AMQP client because that's all it knows about
>based on
>what is being broadcast around the cluster. This is how it work for Core
>clients as
>well.
>
>There is no way on the broker to tell it to not send that information to the
>client,
>but that seems like a worthwhile feature to implement.
>
>
>Justin
>
>On Mon, Apr 13, 2026 at 3:24 PM Vilius Šumskas via users
><[email protected]> wrote:
>>
>> Hello,
>>
>>
>>
>> let’s say we have a HA cluster with one primary and one backup node.
>Configuration is straight forward:
>>
>>
>>
>> <connectors>
>>
>> <connector
>> name="artemis-primary">tcp://primaryA:61616</connector>
>>
>> <connector
>> name="artemis-backup">tcp://backupB:61616</connector>
>>
>> </connectors>
>>
>>
>>
>> Since we want to use this cluster with external AMQP clients we have
>> configured
>standard 5672 port with just that protocol and exposed it through the
>firewall. Port
>61616 is used just to form a cluster. For security reasons it is unavailable to
>external clients.
>>
>>
>>
>> <acceptors>
>>
>> <acceptor
>> name="artemis">tcp://0.0.0.0:61616?tcpSendBufferSize=1048576;tcpReceiv
>>
>eBufferSize=1048576;amqpMinLargeMessageSize=102400;protocols=CORE,AMQP
>>
>,STOMP,HORNETQ,MQTT,OPENWIRE;useEpoll=true;amqpCredits=1000;amqpLow
>Cre
>> dits=300;amqpDuplicateDetection=true;supportAdvisory=false;suppressInt
>> ernalManagementObjects=false</acceptor>
>>
>>
>>
>> <acceptor
>> name="amqp">tcp://0.0.0.0:5672?tcpSendBufferSize=1048576;tcpReceiveBuf
>> ferSize=1048576;protocols=AMQP;useEpoll=true;amqpCredits=1000;amqpLowC
>> redits=300;amqpMinLargeMessageSize=102400;amqpDuplicateDetection=true<
>> /acceptor>
>>
>> </acceptors>
>>
>>
>>
>> We also have one more acceptor for SSL connections on port 5671 for these
>external clients, but for simplicity I omitted it. The problem can be repeated
>on
>standard plaintext AMQP.
>>
>>
>>
>> In Qpid JMS client we use the following connection URL:
>> failover:(amqp://primaryA:5672,amqp://backupB:5672)
>>
>>
>>
>> Under normal circumstances this works, but if we do a broker failover, or if
>> we
>(for testing reason) kill network reachability of primary node, Qpid client
>then tries
>to connect to amqp://backupB:616161 instead of port 5672. When debugging I
>see that this port comes as a part of AMQP “open” frame which then replaces
>client’s connection URL.
>>
>>
>>
>> As a workaround I found amqpOpenServerListAction=IGNORE transport option.
>However, this means that we would have to update hundreds of our Qpid JMS
>clients we don’t really control with a new connection URL.
>>
>>
>>
>> Is there a way to send a correct broker topology port from the broker side
>without changes to the clients?
>>
>>
>>
>> I remembered that Artemis has
>https://artemis.apache.org/components/artemis/documentation/latest/ha.html#
>use-client-connectors-to-fail-over but I assume this works only for Core
>clients? Or
>maybe it works with Artemis JMS client?
>>
>>
>>
>> --
>>
>> Best Regards,
>>
>>
>>
>> Vilius Šumskas
>>
>> Rivile
>>
>> IT manager
>
>---------------------------------------------------------------------
>To unsubscribe, e-mail: [email protected]
>For additional commands, e-mail: [email protected]