Jms Artemis:java.net.BindException:无法分配请求的地址

Jms Artemis:java.net.BindException:无法分配请求的地址,jms,activemq-artemis,Jms,Activemq Artemis,我正在尝试创建一个Artemis服务器集群。我有两台artemis服务器,broker.xml中有以下设置,如中所述 broker.xml的一段代码如下 我在broker.xml中添加了以下内容 在发现组的本地绑定地址中,我尝试使用172.16.19.3、172.16.19.7和172.16.19.8。现在,当我运行一台服务器时,它会给我以下警告,我认为这意味着广播没有启动,导致没有集群 2020-06-11 17:10:59,277 WARN [org.apache.activemq.art

我正在尝试创建一个Artemis服务器集群。我有两台artemis服务器,broker.xml中有以下设置,如中所述

broker.xml的一段代码如下

我在broker.xml中添加了以下内容

在发现组的本地绑定地址中,我尝试使用172.16.19.3、172.16.19.7和172.16.19.8。现在,当我运行一台服务器时,它会给我以下警告,我认为这意味着广播没有启动,导致没有集群

2020-06-11 17:10:59,277 WARN  [org.apache.activemq.artemis.core.server] AMQ222116: unable to start broadcast group my-broadcast-group: java.net.BindException: Cannot assign requested address: Cannot bind
        at java.base/java.net.DualStackPlainDatagramSocketImpl.socketBind(Native Method) [java.base:]
        at java.base/java.net.DualStackPlainDatagramSocketImpl.bind0(DualStackPlainDatagramSocketImpl.java:84) [java.base:]
        at java.base/java.net.AbstractPlainDatagramSocketImpl.bind(AbstractPlainDatagramSocketImpl.java:131) [java.base:

        at java.base/java.net.DatagramSocket.bind(DatagramSocket.java:394) [java.base:]
        at java.base/java.net.DatagramSocket.<init>(DatagramSocket.java:244) [java.base:]
        at java.base/java.net.DatagramSocket.<init>(DatagramSocket.java:301) [java.base:]
        at org.apache.activemq.artemis.api.core.UDPBroadcastEndpointFactory$UDPBroadcastEndpoint.openBroadcaster(UDPBroadcastEndpointFactory.java:176) [artemis-core-client-2.13.0.jar:2.13.0]
        at org.apache.activemq.artemis.core.server.cluster.impl.BroadcastGroupImpl.start(BroadcastGroupImpl.java:105) [artemis-server-2.13.0.jar:2.13.0]
        at org.apache.activemq.artemis.core.server.cluster.ClusterManager.start(ClusterManager.java:262) [artemis-server-2.13.0.jar:2.13.0]
        at org.apache.activemq.artemis.core.server.impl.ActiveMQServerImpl.initialisePart2(ActiveMQServerImpl.java:2983) [artemis-server-2.13.0.jar:2.13.0]
        at org.apache.activemq.artemis.core.server.impl.LiveOnlyActivation.run(LiveOnlyActivation.java:76) [artemis-server-2.13.0.jar:2.13.0]
        at org.apache.activemq.artemis.core.server.impl.ActiveMQServerImpl.internalStart(ActiveMQServerImpl.java:599) [artemis-server-2.13.0.jar:2.13.0]
        at org.apache.activemq.artemis.core.server.impl.ActiveMQServerImpl.start(ActiveMQServerImpl.java:526) [artemis-server-2.13.0.jar:2.13.0]
        at org.apache.activemq.artemis.integration.FileBroker.start(FileBroker.java:70) [artemis-cli-2.13.0.jar:2.13.0]
        at org.apache.activemq.artemis.cli.commands.Run.execute(Run.java:84) [artemis-cli-2.13.0.jar:2.13.0]
        at org.apache.activemq.artemis.cli.Artemis.internalExecute(Artemis.java:153) [artemis-cli-2.13.0.jar:2.13.0]
        at org.apache.activemq.artemis.cli.Artemis.execute(Artemis.java:101) [artemis-cli-2.13.0.jar:2.13.0]
        at org.apache.activemq.artemis.cli.Artemis.execute(Artemis.java:128) [artemis-cli-2.13.0.jar:2.13.0]
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [java.base:]
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) [java.base:]

        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [java.base:]
        at java.base/java.lang.reflect.Method.invoke(Method.java:567) [java.base:]
        at org.apache.activemq.artemis.boot.Artemis.execute(Artemis.java:134) [artemis-boot.jar:2.13.0]
        at org.apache.activemq.artemis.boot.Artemis.main(Artemis.java:50) [artemis-boot.jar:2.13.0]

2020-06-11 17:10:59,502 INFO  [org.apache.activemq.artemis.core.server] AMQ221020: Started NIO Acceptor at 0.0.0.0:61616 for protocols [CORE,MQTT,AMQP,STOMP,HORNETQ,OPENWIRE]
2020-06-11 17:10:59,514 INFO  [org.apache.activemq.artemis.core.server] AMQ221020: Started NIO Acceptor at 0.0.0.0:5445 for protocols [HORNETQ,STOMP]

有没有任何关于为什么会发生这种情况的建议?我在网上找不到任何解释这一点的在线资源。

这可能会帮助其他人,我在发布这个问题后发现了我的错误

本地绑定地址。这是数据报的本地绑定地址 套接字绑定到。如果您的计算机上有多个网络接口 服务器,您可以指定要使用哪个服务器进行广播 设置此属性。如果未指定此属性,则 套接字将绑定到通配符地址,该地址由 内核。这是特定于UDP的属性


这是运行artemis服务器的系统的ip地址。

您是如何使用的tcp://localhost:61619 对于正在广播的连接器?这对您当前的配置不起作用。@Justin Bertram您能再解释一下吗?您广播的连接器告诉集群中的其他节点如何连接回最初发送广播的节点。因此,连接器需要与其中一个接受器匹配。在端口619上没有任何侦听器。此外,使用localhost是无效的,除非集群节点都在同一台机器上运行,这只适用于演示之类的东西。连接器需要使用发送它的机器的实际IP地址或主机名。是的,我正在这样做,但它只找到一台服务器。我又提出了一个更详细的问题。请看一看。非常感谢。
<connectors>
   <connector name="nettyartemis">tcp://localhost:61619</connector>
</connectors>

<discovery-groups>
   <discovery-group name="my-discovery-group">
      <local-bind-address>172.16.9.3</local-bind-address>
      <group-address>231.7.7.7</group-address>
      <group-port>9876</group-port>
      <refresh-timeout>10000</refresh-timeout>
   </discovery-group>
</discovery-groups>

<broadcast-groups>
   <broadcast-group name="my-broadcast-group">
      <local-bind-address>172.16.9.3</local-bind-address>
      <local-bind-port>5432</local-bind-port>
      <group-address>231.7.7.7</group-address>
      <group-port>9876</group-port>
      <broadcast-period>2000</broadcast-period>
      <connector-ref>nettyartemis</connector-ref>
   </broadcast-group>
</broadcast-groups>
2020-06-11 17:10:59,277 WARN  [org.apache.activemq.artemis.core.server] AMQ222116: unable to start broadcast group my-broadcast-group: java.net.BindException: Cannot assign requested address: Cannot bind
        at java.base/java.net.DualStackPlainDatagramSocketImpl.socketBind(Native Method) [java.base:]
        at java.base/java.net.DualStackPlainDatagramSocketImpl.bind0(DualStackPlainDatagramSocketImpl.java:84) [java.base:]
        at java.base/java.net.AbstractPlainDatagramSocketImpl.bind(AbstractPlainDatagramSocketImpl.java:131) [java.base:

        at java.base/java.net.DatagramSocket.bind(DatagramSocket.java:394) [java.base:]
        at java.base/java.net.DatagramSocket.<init>(DatagramSocket.java:244) [java.base:]
        at java.base/java.net.DatagramSocket.<init>(DatagramSocket.java:301) [java.base:]
        at org.apache.activemq.artemis.api.core.UDPBroadcastEndpointFactory$UDPBroadcastEndpoint.openBroadcaster(UDPBroadcastEndpointFactory.java:176) [artemis-core-client-2.13.0.jar:2.13.0]
        at org.apache.activemq.artemis.core.server.cluster.impl.BroadcastGroupImpl.start(BroadcastGroupImpl.java:105) [artemis-server-2.13.0.jar:2.13.0]
        at org.apache.activemq.artemis.core.server.cluster.ClusterManager.start(ClusterManager.java:262) [artemis-server-2.13.0.jar:2.13.0]
        at org.apache.activemq.artemis.core.server.impl.ActiveMQServerImpl.initialisePart2(ActiveMQServerImpl.java:2983) [artemis-server-2.13.0.jar:2.13.0]
        at org.apache.activemq.artemis.core.server.impl.LiveOnlyActivation.run(LiveOnlyActivation.java:76) [artemis-server-2.13.0.jar:2.13.0]
        at org.apache.activemq.artemis.core.server.impl.ActiveMQServerImpl.internalStart(ActiveMQServerImpl.java:599) [artemis-server-2.13.0.jar:2.13.0]
        at org.apache.activemq.artemis.core.server.impl.ActiveMQServerImpl.start(ActiveMQServerImpl.java:526) [artemis-server-2.13.0.jar:2.13.0]
        at org.apache.activemq.artemis.integration.FileBroker.start(FileBroker.java:70) [artemis-cli-2.13.0.jar:2.13.0]
        at org.apache.activemq.artemis.cli.commands.Run.execute(Run.java:84) [artemis-cli-2.13.0.jar:2.13.0]
        at org.apache.activemq.artemis.cli.Artemis.internalExecute(Artemis.java:153) [artemis-cli-2.13.0.jar:2.13.0]
        at org.apache.activemq.artemis.cli.Artemis.execute(Artemis.java:101) [artemis-cli-2.13.0.jar:2.13.0]
        at org.apache.activemq.artemis.cli.Artemis.execute(Artemis.java:128) [artemis-cli-2.13.0.jar:2.13.0]
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [java.base:]
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) [java.base:]

        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [java.base:]
        at java.base/java.lang.reflect.Method.invoke(Method.java:567) [java.base:]
        at org.apache.activemq.artemis.boot.Artemis.execute(Artemis.java:134) [artemis-boot.jar:2.13.0]
        at org.apache.activemq.artemis.boot.Artemis.main(Artemis.java:50) [artemis-boot.jar:2.13.0]

2020-06-11 17:10:59,502 INFO  [org.apache.activemq.artemis.core.server] AMQ221020: Started NIO Acceptor at 0.0.0.0:61616 for protocols [CORE,MQTT,AMQP,STOMP,HORNETQ,OPENWIRE]
2020-06-11 17:10:59,514 INFO  [org.apache.activemq.artemis.core.server] AMQ221020: Started NIO Acceptor at 0.0.0.0:5445 for protocols [HORNETQ,STOMP]