zoukankan      html  css  js  c++  java
  • RabbitMQ direct类型的Exchange

    就目前来说,Exchange是与消息发送端有关的,因为它可以指定将消息发送到哪个或哪些队列中。

    本篇文章介绍的direct类型就是指定将消息定向发送到哪个队列中。

    direct,顾名思义,就是直接的意思。那我就直接开始上代码了!

    //首先创建一个连接工厂对象
    var factory = new ConnectionFactory() { HostName = "localhost", UserName = "yyt", Password = "yyt888888",VirtualHost="log" };
    //然后使用工厂对象创建一个TCP连接
    using (var connection = factory.CreateConnection()){
        //在当前连接上创建一根通信的虚拟管道
        using (var channel = connection.CreateModel()) {
            //声明一个交换机
            channel.ExchangeDeclare("e.log",  //交换机名称
                                "direct"); //交换机类型
            //声明一个队列
            channel.QueueDeclare(queue: "q.log.info", //队列名称
                                 durable: false,      //当前队列是否持久化
                                 exclusive: false,    //是否是私有队列
                                 autoDelete: false,   //该队列在最后一个consumer断开之后是否自动删除
                                 arguments: null);    //其他配置参数
            //将该队列绑定到交换机,并设置RoutingKey=log.info,以便交换机能通过RoutingKey找到该队列
            channel.QueueBind("q.log.info", //队列名称
                              "e.log",      //交换机名称
                              "log.info");  //自定义的RoutingKey
    
            //生成二进制消息
            var body = Encoding.UTF8.GetBytes("hello world!");
            //将二进制消息通过交换机发送到队列中
            channel.BasicPublish(exchange: "e.log",      //交换机
                                 routingKey: "log.info", //RoutingKey
                                 basicProperties: null,  //先让它为空
                                 body: body);            //发送的消息(二进制数据)
            
        }
    }

    运行程序后,我们到RabbitMQ的web管理界面去看看。

    在浏览器地址栏中输入:localhost:15672

    输入用户名和密码进入后,在Exchange栏可以看到如下画面:

    证明创建了一个direct类型的交换机(e.log),点进去看看。

    可以看到该交换机绑定了名为q.log.info的队列,并生成了一个名为log.info的RoutingKey。以后该交换机就可以通过log.info找到队列q.log.info,并把消息储存在该队列中。

    接下来我们点开Queue标签看看。

    可以看到有一个名为q.log.info的队列,里面存了一个消息。

    点击这个队列名称,让我们来看看消息的内容是什么?

    点击那个'Get Message(s)'按钮。看到么,Payload的内容就是我们发送的消息。

    操作演示成功!

    最后让我们喊出我们的口号:捉住那只兔子,炖了它!

  • 相关阅读:
    bash 笔记
    lvs: linux virtual server
    学习html第一天
    学习c语言的第14天
    c语言学习的第13天2
    c语言学习的第13天1
    c语言学习的第12天
    c语言学习的第11天 指针
    移动端点击延迟300毫秒----FastClick用法
    H5移动端复制功能实现
  • 原文地址:https://www.cnblogs.com/williamwsj/p/8093564.html
Copyright © 2011-2022 走看看