8.2. 为大型消息处理配置 AMQP 接收器
以下流程演示了如何配置 AMQP 接收器来处理大于指定大小的 AMQP 消息作为大型消息。
流程
打开
<broker_instance_dir>/etc/broker.xml
配置文件。代理配置文件中的默认 AMQP 接收器如下:
<acceptors> ... <acceptor name="amqp">tcp://0.0.0.0:5672?tcpSendBufferSize=1048576;tcpReceiveBufferSize=1048576;protocols=AMQP;useEpoll=true;amqpCredits=1000;amqpLowCredits=300</acceptor> ... </acceptors>
在默认的 AMQP 接收器(或其他您配置的 AMQP 接收器)中,添加
amqpMinLargeMessageSize
属性并指定值。例如:<acceptors> ... <acceptor name="amqp">tcp://0.0.0.0:5672?tcpSendBufferSize=1048576;tcpReceiveBufferSize=1048576;protocols=AMQP;useEpoll=true;amqpCredits=1000;amqpLowCredits=300;amqpMinLargeMessageSize=204800</acceptor> ... </acceptors>
在前面的示例中,代理配置为接受端口 5672 上的 AMQP 消息。根据
amqpMinLargeMessageSize
的值,如果接收器收到 AMQP 消息,其正文大于或等于 204800 字节(即 200 KB),代理会将消息存储为大消息。如果您未明确为此属性指定值,代理将使用默认值 102400(即 100 KB)。
注意
-
如果将
amqpMinLargeMessageSize
设置为 -1,则禁用对 AMQP 消息的大型消息处理。 -
如果代理收到的 AMQP 消息没有超过
amqpMinLargeMessageSize
的值,但会 超过 消息传递日志缓冲区的大小(使用journal-buffer-size
配置参数指定),代理会将消息转换为大型核心协议消息,然后再将其存储在日志中。