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>
在默认的 AMQP acceptor(或者您配置的 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
的值,如果 acceptor 收到一个大于 204800 字节的 AMQP 消息(即 200 KB),代理会将消息存储为大消息。如果您没有为此属性明确指定值,代理将使用默认值 102400(即 100 KB)。
注意
-
如果将
amqpMinLargeMessageSize
设为 -1,则会禁用 AMQP 消息的大型消息处理。 -
如果代理收到一个持久性 AMQP 消息,它没有超过
amqpMinLargeMessageSize
的值,但超出消息传递日志缓冲区的大小(使用journal-buffer-size
配置参数指定),代理会将消息转换为大型核心协议消息,然后再将其存储在日志中。