首先建立一个控制台程序,用来将消息发送到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