Rabbitmq-如何侦听exchange上的消息
我有一个Java程序向RabbitMQ发送消息。我只知道交易所的名字。没有队列、绑定等 我的问题是:如果只知道exchange名称,我如何查看程序是否成功发送这些 谢谢 问候,, 塞尔维亚人请看这里: 简而言之,您必须:Rabbitmq-如何侦听exchange上的消息,rabbitmq,rabbitmq-exchange,Rabbitmq,Rabbitmq Exchange,我有一个Java程序向RabbitMQ发送消息。我只知道交易所的名字。没有队列、绑定等 我的问题是:如果只知道exchange名称,我如何查看程序是否成功发送这些 谢谢 问候,, 塞尔维亚人请看这里: 简而言之,您必须: 创建一个队列,在本例中为匿名队列 将队列绑定到您的exchange 由于绑定可以在fanout或topic或direct之间更改,因此了解您拥有的交换类型非常重要 在本例中,您可以使用RabbitMQ启用扇形输出。这就像有一个发送事务,RabbitMQ将告诉您消息是否成功发送。
fanout
或topic
或direct
之间更改,因此了解您拥有的交换类型非常重要
在本例中,您可以使用RabbitMQ启用扇形输出。这就像有一个发送事务,RabbitMQ将告诉您消息是否成功发送。假设我们有RabbitMQ Exchange,我们需要创建一个队列,将消息推送到Exchange并从队列中使用它,如下所示
private static final String EXCHANGE_NAME = "2022";
private static final String QUEUE_NAME = "2022";
private final static boolean durable = true;
// now we need to create a connection to rabbitmq server //
ConnectionFactory factory = new ConnectionFactory();
factory.setUsername("guest");
factory.setPassword("guest");
factory.setVirtualHost("/");
factory.setHost("127.0.0.1");
factory.setPort(5672);
Connection conn = factory.newConnection();
// create rabbitmq connection chaneel
Channel channel = conn.createChannel();
//Declare Exchange //
channel.exchangeDeclare(EXCHANGE_NAME, "topic", true);
// push message to rabbitmq exchange
channel.basicPublish(EXCHANGE_NAME, "routingkey", null, yourmessage.getBytes());
私有静态最终字符串交换\u NAME=“2022”;
私有静态最终字符串队列_NAME=“2022”;
private final静态布尔持久=true;
//现在我们需要创建到rabbitmq服务器的连接//
ConnectionFactory工厂=新的ConnectionFactory();
factory.setUsername(“来宾”);
工厂设置密码(“来宾”);
factory.setVirtualHost(“/”);
setHost(“127.0.0.1”);
工厂设置端口(5672);
Connection conn=factory.newConnection();
//创建rabbitmq连接通道
Channel=conn.createChannel();
//声明交换//
channel.ExchangeClare(交换名称,“主题”,true);
//将消息推送到rabbitmq交换
channel.basicPublish(EXCHANGE_NAME,“routingkey”,null,yourmessage.getBytes());
以上工作作为生产者,现在我们需要创建队列消费者
private static final String EXCHANGE_NAME = "2022";
private static final String QUEUE_NAME = "2022";
private final static boolean durable = true;
// now we need to create a connection to rabbitmq server //
ConnectionFactory factory = new ConnectionFactory();
factory.setUsername("guest");
factory.setPassword("guest");
factory.setVirtualHost("/");
factory.setHost("127.0.0.1");
factory.setPort(5672);
Connection conn = factory.newConnection();
// create rabbitmq connection chaneel
Channel channel = conn.createChannel();
channel.exchangeDeclare(EXCHANGE_NAME, "topic", true);
//Queue Declare //
channel.queueDeclare(QUEUE_NAME, true, false, false, null);
//Queue bind //
channel.queueBind(QUEUE_NAME, EXCHANGE_NAME, "routingkey");
// Queue Consume //
QueueingConsumer consumer = new QueueingConsumer(channel);
while (true)
{
QueueingConsumer.Delivery delivery = consumer.nextDelivery();
String message = new String(delivery.getBody());
System.out.println(" [x] Received '" + message + "'");
}
私有静态最终字符串交换\u NAME=“2022”;
私有静态最终字符串队列_NAME=“2022”;
private final静态布尔持久=true;
//现在我们需要创建到rabbitmq服务器的连接//
ConnectionFactory工厂=新的ConnectionFactory();
factory.setUsername(“来宾”);
工厂设置密码(“来宾”);
factory.setVirtualHost(“/”);
setHost(“127.0.0.1”);
工厂设置端口(5672);
Connection conn=factory.newConnection();
//创建rabbitmq连接通道
Channel=conn.createChannel();
channel.ExchangeClare(交换名称,“主题”,true);
//队列声明//
queueDeclare(队列名称,true,false,false,null);
//队列绑定//
queueBind(队列名称、交换名称、“路由密钥”);
//队列消耗//
QueueingConsumer=新的QueueingConsumer(通道);
while(true)
{
QueueingConsumer.Delivery=consumer.nextDelivery();
字符串消息=新字符串(delivery.getBody());
System.out.println(“[x]收到“+”消息“+””);
}
private static final String EXCHANGE_NAME = "2022";
private static final String QUEUE_NAME = "2022";
private final static boolean durable = true;
// now we need to create a connection to rabbitmq server //
ConnectionFactory factory = new ConnectionFactory();
factory.setUsername("guest");
factory.setPassword("guest");
factory.setVirtualHost("/");
factory.setHost("127.0.0.1");
factory.setPort(5672);
Connection conn = factory.newConnection();
// create rabbitmq connection chaneel
Channel channel = conn.createChannel();
channel.exchangeDeclare(EXCHANGE_NAME, "topic", true);
//Queue Declare //
channel.queueDeclare(QUEUE_NAME, true, false, false, null);
//Queue bind //
channel.queueBind(QUEUE_NAME, EXCHANGE_NAME, "routingkey");
// Queue Consume //
QueueingConsumer consumer = new QueueingConsumer(channel);
while (true)
{
QueueingConsumer.Delivery delivery = consumer.nextDelivery();
String message = new String(delivery.getBody());
System.out.println(" [x] Received '" + message + "'");
}