首先建立一個控制檯程序,用來將消息發送到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); } } }
點擊隊列名進入java
首先,須要建立一個ConnectionFactory,設置目標,因爲是在本機,因此設置爲localhost,若是RabbitMQ不在本機,只須要設置目標機器的IP地址或者機器名稱便可,而後設置前面建立的用戶名Bruce和密碼Bruce123456。數組
緊接着要建立一個Channel,若是要發送消息,須要建立一個隊列,而後將消息發佈到這個隊列中。在建立隊列的時候,只有RabbitMQ上該隊列不存在,纔會去建立。消息是以二進制數組的形式傳輸的,因此若是消息是實體對象的話,須要序列化和而後轉化爲二進制數組。瀏覽器
如今客戶端發送代碼已經寫好了,運行以後,消息會發布到RabbitMQ的消息隊列中,如今須要編寫服務端的代碼鏈接到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()) { 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消息,而後處理。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上就把這個消息刪掉了。
ERLANG_HOME=C:\Program Files\erl10.3
%ERLANG_HOME%\bin;
RABBITMQ_SERVER=C:\Program Files\RabbitMQ Server\rabbitmq_server-3.7.14
%RABBITMQ_SERVER%\sbin;
"C:\Program Files\RabbitMQ Server\rabbitmq_server-3.7.14\sbin\rabbitmq-plugins.bat" enable rabbitmq_management