一、下載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); } } }
點擊隊列名進入
首先,需要創建一個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(); } } } }
和發送一樣,首先需要定義連接,然后聲明消息隊列。要接收消息,需要定義一個Consume,然后從消息隊列中不斷Dequeue消息,然后處理。
現在發送端和接收端的代碼都寫好了,運行發送端,發送消息:
現在,名為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上的消息隊列信息:
命令行查看:
D:\Program Files\RabbitMQ Server\rabbitmq_server-3.4.2\sbin>rabbitmqctl list_queues Listing queues ... hello 0
可以看到,hello這個隊列中的消息隊列個數為0,這表示,當接收端,接收到消息之后,RabbitMQ上就把這個消息刪掉了。
自定義環境變量
1、erl環境變量配置。
(1)erl環境變量配置。
ERLANG_HOME=C:\Program Files\erl10.3
(2)在Path中加入。
%ERLANG_HOME%\bin;
(3)測試erl配置是否正確,開始-運行-cmd,輸入erl,顯示如下,證明配置正確。
1、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