zoukankan      html  css  js  c++  java
  • 一、RabbitMQ安装与测试连接

    一、下载NuGet支持的RabbitMQ.Client客户端库与安装RabbitMQ服务。

    1、安装客户端库操作服务。

    2、安装服务。

    步骤一、下载Erlang。

    步骤二、下载RabbitMQ服务

    采纳版本。

     

    下载实践:

     

     

     

    3、运行服务:

    1、执行rabbitmq命令行工具(rabbitmqctl ):

      rabbitmqctl -q status       //打印了一些rabbitmq服务状态信息,包括内存,硬盘,和使用erlong的版本信息

      rabbitmqctl list_queues     //查看所有队列消息

      

    RabbitMQ GUID使用:

    安装了Rabbitmq后,默认也安装了该管理工具,执行命令即可启动:

      rabbitmq-plugins enable rabbitmq_management(先定位到rabbitmq安装目录) 

    启动后,直接在浏览器地址输入:http://localhost:15672/   账号密码都是:guest    

     

    4、添加用户、授权、登录:

    5、代码测试:

    为了展示RabbitMQ的基本使用,我们发送一个HelloWorld消息,然后接收并处理:

    首先创建一个控制台程序,用来将消息发送到RabbitMQ的消息队列中,代码如下:

            static void Main(string[] args)
            {
                var factory = new ConnectionFactory();
                factory.HostName = "localhost";
                factory.UserName = "Bruce";
                factory.Password = "Bruce123456";
                using (var connection = factory.CreateConnection())
                {
                    using (var channel = connection.CreateModel())
                    {
                        //1、创建名为queue1队列。
                        channel.QueueDeclare("queue1", false, false, false, null);
                        string message = "Hello World2";
                        var body = Encoding.UTF8.GetBytes(message);
                        //2、消息是实体对象的话,需要序列化和然后转化为二进制数组。
                        channel.BasicPublish("", "queue1", null, body);
                        Console.WriteLine(" set {0}", message);
                    }
                }
            }
    View Code

    点击队列名进入

    首先,需要创建一个ConnectionFactory,设置目标,由于是在本机,所以设置为localhost,如果RabbitMQ不在本机,只需要设置目标机器的IP地址或者机器名称即可,然后设置前面创建的用户名Bruce和密码Bruce123456。

    紧接着要创建一个Channel,如果要发送消息,需要创建一个队列,然后将消息发布到这个队列中。在创建队列的时候,只有RabbitMQ上该队列不存在,才会去创建。消息是以二进制数组的形式传输的,所以如果消息是实体对象的话,需要序列化和然后转化为二进制数组。

    现在客户端发送代码已经写好了,运行之后,消息会发布到RabbitMQ的消息队列中,现在需要编写服务端的代码连接到RabbitMQ上去获取这些消息。

    自同样,创建一个名为Receive的服务端控制台应用程序,服务端代码如下:

            static void Main(string[] args)
            {
                var factory = new ConnectionFactory();
                factory.HostName = "localhost";
                factory.UserName = "Bruce";
                factory.Password = "Bruce123456";
                using (var connection = factory.CreateConnection())
                {
                    using (var channel = connection.CreateModel())
                    {
                        channel.QueueDeclare("queue1", false, false, false, null);
                        var consumer = new QueueingBasicConsumer(channel);
                        channel.BasicConsume("queue1", true, consumer);
                        Console.WriteLine(" waiting for message.");
                        while (true)
                        {
                            var ea = (BasicDeliverEventArgs)consumer.Queue.Dequeue();
                            var body = ea.Body;
                            var message = Encoding.UTF8.GetString(body);
                            Console.WriteLine("Received {0}", message);
                            Console.ReadKey();
                        }
                    }
                }
            }
    View Code

    和发送一样,首先需要定义连接,然后声明消息队列。要接收消息,需要定义一个Consume,然后从消息队列中不断Dequeue消息,然后处理。

    现在发送端和接收端的代码都写好了,运行发送端,发送消息:

    现在,名为hello的消息队列中,发送了一条消息。这条消息存储到了RabbitMQ的服务器上了。使用rabbitmqctl 的list_queues可以查看所有的消息队列,以及里面的消息个数,可以看到,目前Rabbitmq上只有一个消息队列,里面只有一条消息:

    D:Program FilesRabbitMQ Server
    abbitmq_server-3.4.2sbin>rabbitmqctl list_queues
    Listing queues ...
    hello   1

    现在运行接收端程序,如下:

    可以看到,已经接受到了客户端发送的Hello World,现在再来看RabitMQ上的消息队列信息:

     命令行查看:

    D:Program FilesRabbitMQ Server
    abbitmq_server-3.4.2sbin>rabbitmqctl list_queues
    Listing queues ...
    hello   0

    可以看到,hello这个队列中的消息队列个数为0,这表示,当接收端,接收到消息之后,RabbitMQ上就把这个消息删掉了。

    自定义环境变量

    1、erl环境变量配置。

    (1)erl环境变量配置。

    ERLANG_HOME=C:Program Fileserl10.3
    

      

    (2)在Path中加入。

    %ERLANG_HOME%in;
    

      

    (3)测试erl配置是否正确,开始-运行-cmd,输入erl,显示如下,证明配置正确。

     

    1、RabbitMQ环境变量配置。

    (1)RabbitMQ的安装位置,以及安装的版本,我的版本为3.7.3。

    RABBITMQ_SERVER=C:Program FilesRabbitMQ Server
    abbitmq_server-3.7.14 

    (2)在Path中加入。

    %RABBITMQ_SERVER%sbin;
    

      

    (3)激活rabbitmq_management。在CMD中键入如下命令

    "C:Program FilesRabbitMQ Server
    abbitmq_server-3.7.14sbin
    abbitmq-plugins.bat" enable rabbitmq_management

  • 相关阅读:
    我的博客开通了啦!
    今天终于下定决心,辞掉现在的工作,开始导找新的机会。
    C# 文件流的使用
    XNA学习笔记(二) 发布release版本出现的问题
    Unity3D学习笔记(三) 数组和容器(泛型)使用学习(基于C#)
    Unity3D学习笔记(六) 关于碰撞
    Unity3D学习笔记(一) 模型和贴图导入学习
    Unity3D学习笔记(八) 保存数据的简单方式
    Unity3D学习笔记(五) C#基础学习
    Unity3D学习笔记(四) 脚本内访问其他对象,组件或脚本成员方法总结
  • 原文地址:https://www.cnblogs.com/fger/p/10876280.html
Copyright © 2011-2022 走看看