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

    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

  • 相关阅读:
    string::push_back()
    string::pop_back
    string::insert
    string::get_allocator
    opencv —— minEnclosingCircle、fitEllipse 寻找包裹轮廓的最小圆、点集拟合椭圆
    opencv —— boundingRect、minAreaRect 寻找包裹轮廓的最小正矩形、最小斜矩形
    opencv —— approxPolyDP 生成逼近曲线
    opencv —— convexHull 寻找并绘制凸包
    opencv —— findContours、drawContours 寻找并绘制轮廓
    opencv —— equalizeHist 直方图均衡化实现对比度增强
  • 原文地址:https://www.cnblogs.com/zxtceq/p/7567285.html
Copyright © 2011-2022 走看看