JBoss 7.1.1。绑定到2个ip地址

JBoss 7.1.1. bound to 2 ip addresses

我有一台带有 2 个以太网卡的服务器 PC,所以它有两个 IP 地址。 JBoss 7.1.1 在服务器 PC 上是 运行。 我将 JBoss 绑定到 0.0.0.0,因为 JBoss 必须从第一个 IP 地址接收 jms 消息,但用户界面通过第二个 IP 地址与其通信。

set "JAVA_OPTS=%JAVA_OPTS% -Djboss.bind.address=0.0.0.0"

除非我将 jboss 绑定地址设置为第一个 IP

,否则 jms 消息传递不起作用(找不到队列)
set "JAVA_OPTS=%JAVA_OPTS% -Djboss.bind.address=192.168.89.253"

但是此时用户无法与服务器通信。我如何配置 JBoss 使 jms 工作,同时用户可以通过用户界面的第二个 ip 访问服务器?

第一个解决方案是坚持使用特定绑定

-Djboss.bind.address=192.168.89.253

并在 standalone.xml 文件中更改 public 界面:

<interface name="public">
    <inet-address value="${jboss.bind.address:127.0.0.1}"/>
</interface>

您可以通过引入新系统 属性 例如:jboss.bind.address.public 或直接在 XML 文件中写入 IP 地址来实现。

第二种解决方案是更改 jgroups 的绑定地址:

-b 0.0.0.0 -Djgroups.bind_addr=127.0.0.1

使用 ha 配置文件时可能会有所帮助。 JGroups 使用 jboss 绑定地址 (-b) 作为默认接口,但不能很好地与 0.0.0.0 绑定一起使用。

jBoss 社区给了我答案。我必须定义一个新接口

<interface name="my-interface">
        <inet-address value="xxx.xxx.xxx.xxx"/>
</interface>

并且消息传递使用此接口:

<socket-binding name="messaging" port="5445" interface="my-interface" />

jboss.bind.address保持0.0.0.0

-Djboss.bind.address=0.0.0.0

来源: https://developer.jboss.org/thread/266416