zoukankan      html  css  js  c++  java
  • rabbitmq 初识

    下载安装 erlang

    https://www.erlang.org/downloads

    下载安装 rabbitmq

    https://github.com/rabbitmq/rabbitmq-server

    安装插件

    在sbin目录下

    cd D:Program FilesRabbitMQ Server
    abbitmq_server-3.8.8sbin

    执行

    rabbitmq-plugins.bat enable rabbitmq_management

    现在可以访问

    http://localhost:15672/

     用户名和密码都为guest,该账号貌似只能在本机登录

    创建一个账号 设置管理员权限, 虚拟机hosts为 /

    C# 例子

    引入

     发送端代码

     class Program
        {
            static void Main(string[] args)
            {
                IConnectionFactory connectionFactory = new ConnectionFactory
                {
                    HostName = "ip",
                    Port = 5672,
                    UserName="meng",
                    Password= "meng"
                };
                connectionFactory.VirtualHost = "/";
                //
                using (IConnection con = connectionFactory.CreateConnection())
                {
                    using (IModel channel = con.CreateModel())
                    {
                        //queue 表示队列名称
                        //durable 是否持久化
                        //exclusive 是否独占连接,关闭后会自动删除
                        //autoDelete 自动删除
                        //arguments 
                        channel.QueueDeclare(queue:"que",durable:false,exclusive:false,autoDelete:false,arguments:null);
                        while (true)
                        {
                            Console.WriteLine("输入消息");
                            string str = Console.ReadLine();
                            byte[] msg = Encoding.UTF8.GetBytes(str);
                            //exchange mq的交换机
                            //routingKey 路由key, 交换机根据消息转发到指定队列。如果使用默认交换机,routingKey要使用队列名称
                            //basicProperties
                            //body 二进制数组,
                            channel.BasicPublish(exchange: "",routingKey:"que",basicProperties:null,body:msg);
                            Console.WriteLine("发送" + msg);
                        }
                    }
                }
    
            }
        }

    接收端代码

        class Program
        {
            static void Main(string[] args)
            {
                IConnectionFactory connectionFactory = new ConnectionFactory
                {
                    HostName = "192.168.35.122",
                    Port = 5672,
                    UserName = "meng",
                    Password = "meng"
                };
    
                using (IConnection con = connectionFactory.CreateConnection())
                {
                    using (IModel channel = con.CreateModel())
                    {
                        String queueName = String.Empty;
                        if (args.Length > 0)
                            queueName = args[0];
                        else
                            queueName = "que";
    
                        //声明一个队列
                        channel.QueueDeclare(queue: queueName,exclusive:false ,durable: false, autoDelete: false, arguments: null);
                        //创建消费者对象
                        var consumer = new EventingBasicConsumer(channel);
                        consumer.Received += (model, ea) =>
                        {
                           string message=Encoding.UTF8.GetString(ea.Body.Span);
                            Console.WriteLine("接收到信息为:" + message);
                        };
                        //消费者开启监听
                        channel.BasicConsume(queue: queueName, autoAck: true, consumer: consumer);
                        Console.ReadKey();
                    }
                }
            }
        }
  • 相关阅读:
    模板实现查找算法
    指针笔试题
    【查找算法】基于比较的查找算法(顺序查找、对分查找、分块查找)
    flask动态路由
    flask对json的内置处理模块jsonify
    pyquery和etree两个模块的区别
    单元测试初试
    求数组中子数组的最大值
    C语言小程序之读取文本文件中单词的个数并打印出频率最高的10个
    电梯去哪儿
  • 原文地址:https://www.cnblogs.com/buchizaodian/p/13660747.html
Copyright © 2011-2022 走看看