rabbitmq四---通过路由规则,接收端接收发送端发送的消息

发送端代码:

channel.exchangeDeclare(EXCHANGE_NAME, "direct");//rounting模式
String routingKeyOne = "error";//定义一个路由名为“error”
for (int i = 0; i <= 1; i++) {  
    String messageOne = "this is a error logs:" + i;  
    channel.basicPublish(EXCHANGE_NAME, routingKeyOne, null, messageOne.getBytes());  
    System.out.println(" [x] Sent '" + routingKeyOne + "':'" + messageOne + "'");  
}  
System.out.println("################################");  
String routingKeyTwo = "info"; //定义一个路由名为“info”
for (int i = 0; i <= 2; i++) {  
    String messageTwo = "this is a info logs:" + i;  
    channel.basicPublish(EXCHANGE_NAME, routingKeyTwo, null, messageTwo.getBytes());  
    System.out.println(" [x] Sent '" + routingKeyTwo + "':'" + messageTwo+ "'");  
}  
System.out.println("################################");  
String routingKeyThree = "all";//定义一个路由名为“all”
for (int i = 0; i <= 3; i++) {  
    String messageThree = "this is a all logs:" + i;  
    channel.basicPublish(EXCHANGE_NAME, routingKeyThree, null, messageThree.getBytes());  
    System.out.println(" [x] Sent '" + routingKeyThree + "':'" + messageThree + "'");  
}  
channel.close();  
connection.close();  

接收端1代码:

channel.exchangeDeclare(EXCHANGE_NAME, "direct");//声明Exchange
String queueName = "queue_logs2";//定义队列名为“queue_logs2”的Queue
channel.queueDeclare(queueName, false, false, false, null);  
String routingKeyOne = "error";//"error"路由规则
channel.queueBind(queueName, EXCHANGE_NAME, routingKeyOne);//把Queue、Exchange及路由绑定
String routingKeyTwo = "info";  
channel.queueBind(queueName, EXCHANGE_NAME, routingKeyTwo);  
System.out.println(" [*] Waiting for messages.");  
QueueingConsumer consumer = new QueueingConsumer(channel);  
channel.basicConsume(queueName, true, consumer);  
while (true) {  
     QueueingConsumer.Delivery delivery = consumer.nextDelivery();  
     String message = new String(delivery.getBody());  
     String routingKey = delivery.getEnvelope().getRoutingKey();  
     System.out.println(" [x] Received '" + routingKey + "':'" + message + "'");  
}

接收端2代码:

channel.exchangeDeclare(EXCHANGE_NAME, "direct");//声明Exchange
String queueName = "queue_logs1";//定义队列名为“queue_logs1”的Queue
channel.queueDeclare(queueName, false, false, false, null);  
String routingKeyOne = "all";//"error"路由规则
channel.queueBind(queueName, EXCHANGE_NAME, routingKeyOne);//把Queue、Exchange及路由绑定
String routingKeyTwo = "info";  
channel.queueBind(queueName, EXCHANGE_NAME, routingKeyTwo);  
System.out.println(" [*] Waiting for messages.");  
QueueingConsumer consumer = new QueueingConsumer(channel);  
channel.basicConsume(queueName, true, consumer);  
while (true) {  
     QueueingConsumer.Delivery delivery = consumer.nextDelivery();  
     String message = new String(delivery.getBody());  
     String routingKey = delivery.getEnvelope().getRoutingKey();  
     System.out.println(" [x] Received '" + routingKey + "':'" + message + "'");  
}









  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值