将邮递员请求转换为RabbitMQ

时间:2020-05-22 05:20:30

标签: java rabbitmq postman

我有一个POST请求,我在Postman中使用它来更改设备的状态,当我直接通过Postman发出请求时,它似乎可以工作,但是我无法使其与RabbitMQ一起工作。

这是我的邮递员

&&

这是我的RabbitMQ请求

||

关于为什么不起作用的任何想法,我真的是RabbitMQ的新手,我看不到我犯了一个错误。

1 个答案:

答案 0 :(得分:1)

您的路由密钥变量是routingKey = fakeid.test,队列变量将是testQ = testQfakeid.test

一种方法语法,

 void basicPublish(String exchange, String routingKey, BasicProperties props, byte[] body)

您正在使用

 channel.basicPublish("SOCKET_PROXY_EXCHANGE", testQ, null, payload.getBytes());

应该是

 channel.basicPublish("SOCKET_PROXY_EXCHANGE", routingKey, null, payload.getBytes());

路由键,而不是队列。

发布时,我们只需要路由键交换名称,根据与该交换绑定的内容,它将根据交换类型路由到该队列

RabbitMQ队列,Exchange以及它们之间的绑定可以通过使用 Rabbitmq管理控制台通过进行编码。

如何通过代码创建队列,交换和绑定队列,

            String exchangeName= "SOCKET_PROXY_EXCHANGE";

            channel.queueDeclare(testQ, false, false, false, null);
            channel.exchangeDeclare(exchangeName, "direct", true);
            channel.queueBind(testQ, exchangeName, routingKey);
            channel.basicPublish(exchangeName, routingKey, null, payload.getBytes());
          //  channel.queueDelete(testQ);
            channel.close();

您可以引用RabbitMQ的Exchange,队列以及它们之间的绑定,文档中的Exchange类型。