<p>We are running an ActiveMQ Artemis cluster in a Kubernetes cluster. All of our applications (Java/Springboot/JMS) running in the Kubernetes cluster take advantage of connecting directly to the broker instances.</p>
<p>However, the IP addresses from the Kubernetes Pod network are unavailable outside of the cluster. Exposing the broker instances to the public network is possible — but with different IP addresses. This is similar to hiding the Artemis cluster behind a NAT configuration. When connecting to the brokers through the public IP addresses, client applications receive cluster topology information containing IP addresses (or hostnames?) that are unreachable outside of the cluster.</p>
<p>Is there any way to deal with “internal” and “external” IP addresses and/or hostnames and make topology discovery work for cluster-external applications?</p>
<p>And, related (I am not a Java developer): Is there any way to log received topology information for JMS applications?</p>

Stephan
<p>ActiveMQ Artemis CORE client provides the <code>useTopologyForLoadBalancing</code> url parameter to disable the use of the cluster topology information for load balancing, i.e.</p>
<pre><code>tcp://localhost:61616?useTopologyForLoadBalancing=false
</code></pre>
<p>The log of the cluster topology information can be enabled setting the <code>TRACE</code> for the <code>org.apache.activemq.artemis.core.protocol.core</code> logger in the <code>logging.properties</code> file, see the <a href="https://activemq.apache.org/components/artemis/documentation/latest/logging.html" rel="nofollow noreferrer">documentation</a>, i.e.</p>
<pre><code>loggers=...,org.apache.activemq.artemis.core.protocol.core

logger.org.apache.activemq.audit.message.level=TRACE

handler.CONSOLE.level=TRACE

handler.FILE.level=TRACE
</code></pre>
