8.2. 为大型消息处理配置 AMQP 接受器
以下流程演示了如何配置 AMQP 接受程序来处理大于指定大小的 AMQP 消息作为大消息。
流程
打开 &
lt;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 acceptor (或您配置的另一个 AMQP acceptor)中,添加
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
的值,如果 acceptor 收到一个 AMQP 消息,其正文大于或等于 204800 字节(即 200 KB),代理会将消息存储为大消息。如果没有为此属性明确指定值,代理将使用默认值 102400 (即 100 KB)。
注意
-
如果将
amqpMinLargeMessageSize
设置为 -1,则禁用对 AMQP 消息的大型消息处理。 -
如果代理收到一个持久性 AMQP 消息,它没有超过
amqpMinLargeMessageSize
的值,但超出消息传递日志缓冲区的大小(使用journal-buffer-size
配置参数指定),代理会将消息转换为大型核心协议消息,然后再将其存储在日志中。