![](/img/trans.png)
[英]Kubernetes Pods intercommunication with internal/external IP addresses
[英]ActiveMQ Artemis: Internal and external IP addresses
我们在 Kubernetes 集群中运行 ActiveMQ Artemis 集群。 我们在 Kubernetes 集群中运行的所有应用程序(Java/Springboot/JMS)都利用了直接连接到代理实例的优势。
但是,来自 Kubernetes Pod 网络的 IP 地址在集群外不可用。 将代理实例暴露给公共网络是可能的——但使用不同的 IP 地址。 这类似于将 Artemis 集群隐藏在 NAT 配置后面。 当通过公共 IP 地址连接到代理时,客户端应用程序会收到包含集群外无法访问的 IP 地址(或主机名?)的集群拓扑信息。
有没有办法处理“内部”和“外部”IP 地址和/或主机名,并使拓扑发现适用于集群外部应用程序?
并且,相关(我不是 Java 开发人员):有没有办法记录收到的 JMS 应用程序的拓扑信息?
您不能依赖外部客户端的拓扑发现。 您可以做的是提供外部 ips 列表或在集群前面有一个路由器/负载均衡器。
ActiveMQ Artemis CORE 客户端提供了useTopologyForLoadBalancing
url 参数来禁止使用集群拓扑信息进行负载均衡,即
tcp://localhost:61616?useTopologyForLoadBalancing=false
可以在logging.properties
文件中为org.apache.activemq.artemis.core.protocol.core
logger 设置TRACE
启用集群拓扑信息的日志,参见文档,即
loggers=...,org.apache.activemq.artemis.core.protocol.core
logger.org.apache.activemq.audit.message.level=TRACE
handler.CONSOLE.level=TRACE
handler.FILE.level=TRACE
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.