1、RabbitMQ安装与测试链接

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

一、安装客户端库操做服务。

 

二、安装服务。

步骤1、下载Erlang。

步骤2、下载RabbitMQ服务

 

采纳版本。

 

 

下载实践:

 

 

 

 

三、运行服务:

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

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

  rabbitmqctl list_queues     //查看全部队列消息

  

RabbitMQ GUID使用:

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

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

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

 

四、添加用户、受权、登陆:

五、代码测试:

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

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

        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())
                {
                    //一、建立名为queue1队列。
                    channel.QueueDeclare("queue1", false, false, false, null);
                    string message = "Hello World2";
                    var body = Encoding.UTF8.GetBytes(message);
                    //二、消息是实体对象的话,须要序列化和而后转化为二进制数组。
                    channel.BasicPublish("", "queue1", null, body);
                    Console.WriteLine(" set {0}", message);
                }
            }
        }
View Code

 

点击队列名进入java

 

首先,须要建立一个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消息,而后处理。ide

如今发送端和接收端的代码都写好了,运行发送端,发送消息:工具

如今,名为hello的消息队列中,发送了一条消息。这条消息存储到了RabbitMQ的服务器上了。使用rabbitmqctl 的list_queues能够查看全部的消息队列,以及里面的消息个数,能够看到,目前Rabbitmq上只有一个消息队列,里面只有一条消息:测试

D:\Program Files\RabbitMQ Server\rabbitmq_server-3.4.2\sbin>rabbitmqctl list_queues
Listing queues ...
hello   1

如今运行接收端程序,以下:

能够看到,已经接受到了客户端发送的Hello World,如今再来看RabitMQ上的消息队列信息:spa

 命令行查看:命令行

D:\Program Files\RabbitMQ Server\rabbitmq_server-3.4.2\sbin>rabbitmqctl list_queues
Listing queues ...
hello   0

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

自定义环境变量

一、erl环境变量配置。

(1)erl环境变量配置。

ERLANG_HOME=C:\Program Files\erl10.3

  

(2)在Path中加入。

%ERLANG_HOME%\bin;

  

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

 

 

一、RabbitMQ环境变量配置。

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

RABBITMQ_SERVER=C:\Program Files\RabbitMQ Server\rabbitmq_server-3.7.14 

 

(2)在Path中加入。

%RABBITMQ_SERVER%\sbin;

  

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

"C:\Program Files\RabbitMQ Server\rabbitmq_server-3.7.14\sbin\rabbitmq-plugins.bat" enable rabbitmq_management

相关文章
相关标签/搜索