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

相關文章
相關標籤/搜索