zoukankan      html  css  js  c++  java
  • 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  

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

  • 相关阅读:
    WINDOWS 远程桌面不能直接拷贝文件问题
    Spring的xml文件详解
    xml名称空间详解
    markdown基本语法
    web.xml文件详解
    Spring事务的7中传播行为
    docker修改容器配置文件
    Load balancer does not have available server for client: CLOUD-PROVIDER-HYSTRIX-PAYMENT
    layui导出表格的两种方法
    解决:Error:java: 无效的源发行版: 12
  • 原文地址:https://www.cnblogs.com/lfyy/p/6491037.html
Copyright © 2011-2022 走看看