8.3. 连接器

连接器定义如何连接集成 JBoss EAP 消息传递服务器,供客户端用于连接。

您可能会知道为什么服务器上定义了连接器(当客户端实际使用时)。原因包括:

  • 在某些情况下,当服务器连接到其他服务器时,它可能充当客户端。例如,一个服务器可能充当另一台服务器的桥梁,或者它可能希望参与到群集中。在这种情况下,服务器需要了解如何连接到其他服务器,并通过连接器定义。
  • 服务器可以使用 ConnectionFactory 提供连接器,该连接器由客户端使用 JNDI 进行查找,因此创建服务器连接更加简单。

您可以定义每台服务器任意数量的连接器。以下示例配置基于 full-ha 配置配置文件,并包含每种类型的连接器。

<subsystem xmlns="urn:jboss:domain:messaging-activemq:4.0">
  <server name="default">
    ...
    <http-connector name="http-connector" endpoint="http-acceptor" socket-binding="http" server-name="messaging-server-1"/>
    <remote-connector name="legacy-remoting-connector" socket-binding="legacy-remoting"/>
    <in-vm-connector name="in-vm" server-id="0"/>
    ...
  </server>
</subsystem>

full -ha 配置文件中的 http- acceptor 一样,http-connector 使用 undertow 子系统定义的默认 http-listenerendpoint 属性声明要连接的 http-acceptor。在这种情况下,连接器将连接到默认的 http-acceptor

JBoss EAP 7.1 为 http -connector 引入了一个新的 server- name 属性。此新属性为可选,但需要能够在运行多个 ActiveMQ Artemis 实例的远程服务器上连接正确的 http-acceptor。如果未定义此属性,则该值在运行时解析为定义了连接器的父 ActiveMQ Artemis 服务器的名称。

另外,请注意 remote-connector 引用的 socket-binding 与其远程接收器相同。最后,in-vm-connectorserver-id 使用与 in-vm-acceptor 相同的值,因为它们在同一服务器实例中运行。

注意

如果公共接口的绑定地址设为 0.0.0.0,您会在启动 JBoss EAP 服务器时看到以下警告信息:

AMQ121005: Invalid "host" value "0.0.0.0" detected for "connector" connector. Switching to <HOST_NAME>. If this new address is incorrect please manually configure the connector to use the proper one.

这是因为远程连接器无法使用 0.0.0.0 地址连接到服务器,并且 messaging-activemq 子系统会尝试将它替换为服务器的主机名。管理员应将远程连接器配置为使用不同的接口地址进行套接字绑定。