• RabbitMQ三种Exchange


    Direct Exchange – 处理路由键。需要将一个队列绑定到交换机上,要求该消息与一个特定的路由键完全匹配。这是一个完整的匹配。如果一个队列绑定到该交换机上要求路由键 “dog”,则只有被标记为“dog”的消息才被转发,不会转发dog.puppy,也不会转发dog.guard,只会转发dog。

    Java代码  收藏代码
    1. Channel channel = connection.createChannel();  
    2. channel.exchangeDeclare("exchangeName", "direct"); //direct fanout topic  
    3. channel.queueDeclare("queueName");  
    4. channel.queueBind("queueName", "exchangeName", "routingKey");  
    5.   
    6. byte[] messageBodyBytes = "hello world".getBytes();  
    7. //需要绑定路由键  
    8. channel.basicPublish("exchangeName", "routingKey", MessageProperties.PERSISTENT_TEXT_PLAIN, messageBodyBytes);  



    Fanout Exchange – 不处理路由键。你只需要简单的将队列绑定到交换机上。一个发送到交换机的消息都会被转发到与该交换机绑定的所有队列上。很像子网广播,每台子网内的主机都获得了一份复制的消息。Fanout交换机转发消息是最快的。

    Java代码  收藏代码
    1. Channel channel = connection.createChannel();  
    2. channel.exchangeDeclare("exchangeName", "fanout"); //direct fanout topic  
    3. channel.queueDeclare("queueName");  
    4. channel.queueBind("queueName", "exchangeName", "routingKey");  
    5.   
    6. channel.queueDeclare("queueName1");  
    7. channel.queueBind("queueName1", "exchangeName", "routingKey1");  
    8.   
    9. byte[] messageBodyBytes = "hello world".getBytes();  
    10. //路由键需要设置为空  
    11. channel.basicPublish("exchangeName", "", MessageProperties.PERSISTENT_TEXT_PLAIN, messageBodyBytes);  



    Topic Exchange – 将路由键和某模式进行匹配。此时队列需要绑定要一个模式上。符号“#”匹配一个或多个词,符号“*”匹配不多不少一个词。因此“audit.#”能够匹配 到“audit.irs.corporate”,但是“audit.*” 只会匹配到“audit.irs”。我在RedHat的朋友做了一张不错的图,来表明topic交换机是如何工作的:

    Java代码  收藏代码
      1. Channel channel = connection.createChannel();  
      2. channel.exchangeDeclare("exchangeName", "topic"); //direct fanout topic  
      3. channel.queueDeclare("queueName");  
      4. channel.queueBind("queueName", "exchangeName", "routingKey.*");  
      5.   
      6. byte[] messageBodyBytes = "hello world".getBytes();  
      7. channel.basicPublish("exchangeName", "routingKey.one", MessageProperties.PERSISTENT_TEXT_PLAIN, messageBodyBytes);  
  • 相关阅读:
    DIV切换
    打开文件
    修改config配置文件
    soapui安装和破解教程
    URL文件保存到本地
    业务gis 怎么让别的开发人员不需要懂gis就可以搞开发? (三)
    业务gis 怎么让别的开发人员不需要懂gis就可以搞开发? (二)
    业务gis 怎么让别的开发人员不需要懂gis就可以搞开发? (一)
    合并的地块带有小缝隙怎么办
    flex polygon 序列化为txt 文本
  • 原文地址:https://www.cnblogs.com/hyl8218/p/5727012.html
Copyright © 2020-2023  润新知