如何使用RabbitMQ管理插件将字节数组发布到队列中?

How to publish byte array to the queue by using RabbitMQ management plugin?

如下图,RabbitMQ管理界面可以直接发布消息到指定队列

这个队列的消费者消费protobuf格式的消息,这意味着我应该将字节数组而不是字符串发布到队列中。我尝试将 protobuf 字节转换为 base64 字符串但失败了,是否可以告诉 RabbitMQ 管理 GUI 将 base64 字符串转换为字节或者有另一种方法直接发布字节数组?

RabbitMQ Management GUI 通过 HTTP 与 RabbitMQ Server 通信(HTTP 是一种文本传输协议),因此无法通过 Management GUI 直接发送二进制数据。

RabbitMQ 社区提供了一个命令行工具 rabbitmq-perf-test 封装了 RabbitMQ Java 客户端,您可以使用您的 Content-Type 发布二进制消息。

服务器不关注Content-Type头;它只是通过 它通过。因此,请确保您的客户端支持您的 Content-Type。

您可以使用任何 HTTP 客户端,例如 curl 或 Postman 或其他任何客户端。 然后像这样发送 HTTP POST 请求:

卷曲 'https://rabbitmq.host/api/exchanges/%2F/amq.default/publish'
--data-raw '{"payload_encoding":"base64","vhost":"/","name":"amq.default","properties":{"delivery_mode ":2,"headers":{}},"routing_key":"您的队列名称在这里","delivery_mode":"2","payload":"基本 64 有效载荷在这里" ,"headers":{},"props":{}}'