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-
acceptorhttp-connector
使用 undertow
子系统定义的默认 http-listener
。endpoint
属性声明要连接的 http-acceptor
。在这种情况下,连接器将连接到默认的 http-acceptor
。
JBoss EAP 7.1 为 http
属性。此新属性为可选,但需要能够在运行多个 ActiveMQ Artemis 实例的远程服务器上连接正确的 -connector 引入了一个新的 server-
namehttp-acceptor
。如果未定义此属性,则该值在运行时解析为定义了连接器的父 ActiveMQ Artemis 服务器的名称。
另外,请注意 remote-connector
引用的 socket-binding
与其远程接收器相同。
最后,in-vm-connector
对 server-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
子系统会尝试将它替换为服务器的主机名。管理员应将远程连接器配置为使用不同的接口地址进行套接字绑定。