第 2 章 网络连接:acceptors 和 Connectors
AMQ Broker 使用两种连接:网络和 In-VM。当双方位于不同的虚拟机时,都会使用网络连接,无论同一服务器还是物理远程。当客户端(应用程序还是服务器)驻留在与代理相同的虚拟机中时,会使用 In-VM 连接。
网络连接依赖于 Netty。Netty 是高性能的低级别网络库,它允许以几种不同方式配置网络连接:使用 Java IO 或 NIO、TCP 套接字、SSL/TLS,甚至通过 HTTP 或 HTTPS 进行隧道配置。Netty 还允许单个端口用于所有消息传递协议。代理将自动检测使用哪个协议,并将传入的消息定向到适当的处理程序以便进一步处理。
网络连接配置中的 URI 决定其类型。例如,在 URI 中使用 vm
将创建一个 In-VM 连接。在以下示例中,请注意接受者的 URI 以
vm
开头。
<acceptor name="in-vm-example">vm://0</acceptor>
在 URI 中使用 tcp
,也可以创建网络连接。
<acceptor name="network-example">tcp://localhost:61617</acceptor>
本章首先讨论专用于网络连接、验收器和连接器的两个配置元素。接下来,会解释 TCP、HTTP 和 SSL/TLS 网络连接以及 In-VM 连接的配置步骤。
2.1. 关于接受者
在讨论 AMQ Broker 中的网络连接时,最重要的概念之一是接受者。接收器定义连接到代理的方式。以下是在配置文件
BROKER_INSTANCE_DIR/etc/broker.xml
中找到的接受人员的典型配置。
<acceptors> <acceptor name="example-acceptor">tcp://localhost:61617</acceptor> </acceptors>
请注意,每个 接受
者都在接受者元素内分组。对于每个服务器可以列出的接受者数量,没有上限。
配置 Acceptor
您可以通过将键值对附加到为接受或 定义的 URI 的查询字符串来配置接收器。
使用分号(';')来分隔多个键值对,如下例中所示。它通过在 URI 的末尾添加多个键值对来为 SSL/TLS 配置接受器,从
sslEnabled=true
开始。
<acceptor name="example-acceptor">tcp://localhost:61617?sslEnabled=true;key-store-path=/path</acceptor>
有关 连接器
配置参数的详细信息,请参阅 Acceptor 和 Connector Configuration Parameters。