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>- <acceptors> ... <acceptor name="amqp">tcp://0.0.0.0:5672?tcpSendBufferSize=1048576;tcpReceiveBufferSize=1048576;protocols=AMQP;useEpoll=true;amqpCredits=1000;amqpLowCredits=300</acceptor> ... </acceptors>- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 在默认的 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>- <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>- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 在前面的示例中,代理配置为接受端口 5672 上的 AMQP 消息。根据 - amqpMinLargeMessageSize的值,如果接收器收到 AMQP 消息,其正文大于或等于 204800 字节(即 200 KB),代理会将消息存储为大消息。如果您未明确为此属性指定值,代理将使用默认值 102400(即 100 KB)。
注意
- 
							如果将 amqpMinLargeMessageSize设置为 -1,则禁用对 AMQP 消息的大型消息处理。
- 
							如果代理收到的 AMQP 消息没有超过 amqpMinLargeMessageSize的值,但会 超过 消息传递日志缓冲区的大小(使用journal-buffer-size配置参数指定),代理会将消息转换为大型核心协议消息,然后再将其存储在日志中。