zoukankan      html  css  js  c++  java
  • RabbitMQ代码第一步

    Hello RabbitMQ

    终于到了使用.Net连接RabbitMQ的时候了,我们首先新建一个控制台应用程序,在程序包管理控制器中NuGet中下载 RabbitMQ。

    Install-Package RabbitMQ.Client
    image

    安装完成后,就可以着手做一个RabbitMQ的消息发布程序了。首先 using RabbitMQ.Client;

    从工厂中拿到实例, 这里的User不建议使用guest,因为guest被设置了回环,也就是仅在本地可以被登陆,在其它的机器在浏览器中是无法使用guest账户登陆的,当然在config中可以去设置,但是这是没有好处的

    //从工厂中拿到实例 本地host、用户admin
                var factory = new ConnectionFactory()
                {
                    UserName = "admin",
                    Password = "admin",
                    HostName = "localhost"
                };

    有的朋友会说,我没有账户怎么办? 可以用到上一篇博文说的ctl去创建一个用户

    rabbitmqctl add_user admin admin

    然后为admin用户设置vhost的权限

    rabbitmqctl set_permissions admin '.*' '.*' '.*'

    回到代码中,这时候新建一个连接,因为在连接被使用完后需要释放,所以我们可以使用using包裹起来

    //创建连接
    using (var connection = factory.CreateConnection())

    有了连接这时候就可以创建一个channl(频道)了

    //创建返回一个新的频道
    using (var channel = connection.CreateModel())

    下一步是需要指定一个交换机的,但是RabbitMQ有一个默认的交换机,为了方便所以这一步忽略

    声明一个队列,然后发布一条消息,这时候可以把项目运行起来了

    //声明队列
    channel.QueueDeclare("firstTest", true, false, false, null);
    //发布消息
    var msg = Encoding.UTF8.GetBytes("Hello RabbitMQ");
    channel.BasicPublish(string.Empty, routingKey: "firstTest", basicProperties: null, body: msg);

    在Web管理工具中就可以看到我们新加的队列 firstTest,而且有一条消息

    image

    这时候可以写一个consumer(消费者)客户端去读取队列中的消息

    consumer的客户端不需要发布和创建队列,也就是除了声明队列和发布消息其它都是一致的。所以我们从返回一个新的频道开始写起

    BasicGet方法返回类型是BasicGetResult,里面有一些基本信息,例如队列中有多少消息、当前交换机类型、当然还有我们最重要的消息 Body

    //获取消息
    var result = channel.BasicGet("firstTest", true);

    var msg = Encoding.UTF8.GetString(result.Body);
    //打印消息
    Console.WriteLine(msg);

    image

    image

  • 相关阅读:
    驱动之类似内存接口的介绍与应用20170209
    驱动之LCD的介绍与应用20170209
    驱动之NandFlash的介绍与应用20170209
    Android广播机制的深入学习
    C++的隐式类型转换与转换操作符
    PackageManager使用
    在命令行中通过adb shell am broadcast发送广播通知
    Android无法收到指定广播的问题总结
    overload, override和overwrite之间的区别
    Longest Substring Without Repeating Characters -- LeetCode
  • 原文地址:https://www.cnblogs.com/LiangSW/p/6166471.html
Copyright © 2011-2022 走看看