第 2 章 在网络连接中配置接收器和连接器


AMQ Broker 中使用的两种连接类型:网络连接 和虚拟机 连接。当双方位于不同的虚拟机中时,会使用网络连接,无论在同一服务器还是物理远程上。当客户端(应用程序还是服务器)位于与代理相同的虚拟机上时,会使用 in-VM 连接。

网络连接使用 Netty。Netty 是一个高性能、低级网络库,它允许以几种不同的方式配置网络连接;使用 Java IO 或 NIO、TCP 套接字、SSL/TLS 或隧道通过 HTTP 或 HTTPS 进行隧道。Netty 还支持单一端口用于所有消息协议。代理将自动检测正在使用的协议,并将传入的消息定向到适当的处理器,以便进一步处理。

网络连接的 URI 确定其类型。例如,在 URI 中指定 vm 会创建一个 in-VM 连接:

<acceptor name="in-vm-example">vm://0</acceptor>

另外,在 URI 中指定 tcp 会创建网络连接。例如:

<acceptor name="network-example">tcp://localhost:61617</acceptor>

以下部分描述了网络连接和虚拟机连接所需的两个重要配置元素; 接收器连接器。这些部分介绍了如何为 TCP、HTTP 和 SSL/TLS 网络连接配置接收器和连接器,以及虚拟机内连接。

2.1. 关于接收器

接收器 ( acceptors)定义如何对代理进行连接。每个接受者定义客户端可用于建立连接的端口和协议。简单接受器配置如下所示。

<acceptors>
   <acceptor name="example-acceptor">tcp://localhost:61617</acceptor>
</acceptors>

您在代理配置中定义的每个 acceptor 元素都包含在一个 接收器 元素中。您可以为代理定义的接受者数量没有上限。默认情况下,AMQ Broker 包括对每个支持的消息传递协议的接受器,如下所示:

<configuration ...>
   <core ...>
      ...
      <acceptors>
        ...
        <!-- Acceptor for every supported protocol -->
        <acceptor name="artemis">tcp://0.0.0.0:61616?tcpSendBufferSize=1048576;tcpReceiveBufferSize=1048576;protocols=CORE,AMQP,STOMP,HORNETQ,MQTT,OPENWIRE;useEpoll=true;amqpCredits=1000;amqpLowCredits=300</acceptor>

        <!-- AMQP Acceptor. Listens on default AMQP port for AMQP traffic -->
        <acceptor name="amqp">tcp://0.0.0.0:5672?tcpSendBufferSize=1048576;tcpReceiveBufferSize=1048576;protocols=AMQP;useEpoll=true;amqpCredits=1000;amqpLowCredits=300</acceptor>

        <!-- STOMP Acceptor -->
        <acceptor name="stomp">tcp://0.0.0.0:61613?tcpSendBufferSize=1048576;tcpReceiveBufferSize=1048576;protocols=STOMP;useEpoll=true</acceptor>

        <!-- HornetQ Compatibility Acceptor. Enables HornetQ Core and STOMP for legacy HornetQ clients. -->
        <acceptor name="hornetq">tcp://0.0.0.0:5445?anycastPrefix=jms.queue.;multicastPrefix=jms.topic.;protocols=HORNETQ,STOMP;useEpoll=true</acceptor>

        <!-- MQTT Acceptor -->
        <acceptor name="mqtt">tcp://0.0.0.0:1883?tcpSendBufferSize=1048576;tcpReceiveBufferSize=1048576;protocols=MQTT;useEpoll=true</acceptor>
      </acceptors>
      ...
  </core>
</configuration>
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.