• RabbitMQ 的 简单使用


    队列的 思想  大概 就是 先进先出,当然 不是 从进的地方出去,呵呵  在使用 rabbitmq 的 时候感觉 也是 这样。发送(进),接收(出)

    rabbitmq  在安装好了之后 会有一个 默认的 guest 账号,现在 先建立一个新的账号  test

    使用提供的 工具  设置

    rabbitmqctl add_user Test root    // 添加Test 用户,密码为 root

    rabbitmqctl set_user_tags Test administrator    //  Test 的 角色 为 administrator

    rabbitmqctl set_permissions -p / Test ".*" ".*" ".*"   // 设置 Test 的权限

    rabbitmqctl list_users  // 查看用户

    rabbitmq: rabbitmqctl stop_app    // 关闭

     rabbitmqctl reset                          // 还原

    rabbitmqctl start_app                 // 启动

    ///发送消息 

    var factory = new ConnectionFactory();     //创建连接工厂并初始化 
    factory.HostName = "localhost";
    factory.UserName = "Test";
    factory.Password = "123456";
    
     
    
     
    
    using (var connection = factory.CreateConnection())   // 创建一个连接
    {
    using (var channel = connection.CreateModel())        // 创建一个通道
    {
    channel.QueueDeclare("VideoTest", false, false, false, null);  // 创建 一个队列
    
    
    for (int i = 0; i < 10; i++)
    {
    
    
    string message = "发送消息到服务器进行保存" + i;
    
    var body = Encoding.UTF8.GetBytes(message);
    channel.BasicPublish("", "VideoTest", null, body);     //发送数据
    Console.WriteLine(" set {0}", message);
    
    } 
    }
    }
    Console.ReadLine();

    这样 就可以得到  10 条数据了 

    ///  接收数据 

     1 Console.WriteLine("开始接受数据");
     2 
     3 
     4 var factory = new ConnectionFactory();
     5 factory.HostName = "localhost";
     6 factory.UserName = "Test";
     7 factory.Password = "123456";
     8 
     9 using (var connection = factory.CreateConnection())
    10 {
    11 using (var channel = connection.CreateModel())
    12 {
    13 channel.QueueDeclare("VideoTest", false, false, false, null);
    14 
    15 var consumer = new QueueingBasicConsumer(channel);
    16 channel.BasicConsume("VideoTest", true, consumer);
    17 
    18 Console.WriteLine(" waiting for message.");
    19 while (true)
    20 {
    21 var ea = (BasicDeliverEventArgs)consumer.Queue.Dequeue();
    22 
    23 var body = ea.Body;
    24 var message = Encoding.UTF8.GetString(body);
    25 Console.WriteLine("Received {0}", message);
    26 
    27 }
    28 }
    29 }
    30 
    31 Console.ReadLine();
    32 
    33  

     当接收到了, 会发现 队列中的数据 被删掉了

  • 相关阅读:
    toCvCopy与toCvShare的区别
    ROS使用catkin_make编译指定功能包
    Ubuntu在apt update时发生错误解决办法
    C++ 环境设置
    C++ 注释
    protobuf docs
    nvidiasmi 命令查看GPU显存使用情况
    C++ 数据类型
    day08 spinnaker
    解决IDEA下Tomcat日志乱码问题
  • 原文地址:https://www.cnblogs.com/lfyy/p/6491037.html
Copyright © 2020-2023  润新知