我需要在项目中访问与WildFly集成的HornetQ。 WildFly服务器应该作为docker容器启动。
我确信容器之间的链接是好方法,但我应该为外部客户端提供部分API以访问JMS和EJB。
从docker容器暴露并链接到公共主机的所有必需端口,8080,4747等。 JMS连接失败,因为客户端无法与错误的主机名建立连接,主机名是容器的内部主机名。
Netty在HornetQ中用作JMS的传输。下面提供了部分配置。
似乎netty在协议初始化时提供容器主机名!我不应该将netty绑定到外部接口。
以这种方式进行网络配置的正确方法是什么?
<connectors>
<netty-connector name="netty" socket-binding="messaging"/>
<netty-connector name="netty-throughput" socket-binding="messaging-throughput">
<param key="batch-delay" value="50"/>
</netty-connector>
<in-vm-connector name="in-vm" server-id="0"/>
</connectors>
<acceptors>
<netty-acceptor name="netty" socket-binding="messaging"/>
<netty-acceptor name="netty-throughput" socket-binding="messaging-throughput">
<param key="batch-delay" value="50"/>
<param key="direct-deliver" value="false"/>
</netty-acceptor>
</acceptors>