RabbitMQ .NET
一. RabbitMQ安装
(一)官方网站:[url]http://www.rabbitmq.com, [/url]了解一个技术的最好方式是去他的官方网站。
(二)rabbitmq 服务器环境搭建
rabbitmq的服务器因操作系统不同有多个版本。这里以XP为例。请见
http://www.rabbitmq.com/install-windows.html所需要下载的软件Erlang和rabbitmqserver都可以在该地址下载.
先下载安装Erlang,并将erlang bin目录加至PATH
添加变量 ERLANG_HOME = D:\Program Files\erl5.10.2 RABBITMQ_SERVER = D:\Program Files\RabbitMQ Server\rabbitmq_server-3.1.1
向Path里添加路径 %ERLANG_HOME %\bin;%RABBITMQ_SERVER%\sbin
再下载安装rabbintmq server.
second download and run rabbitmq-server-3.1.1.exe
最后启动 rabbitmq_server-3.1.1\sbin\rabbitmq-server.bat
以上就是rabbitmq的服务器搭建过程.
二. RabbitMQ Demo 演示
rabbitMQ是一个在AMQP基础上完整的,可服用的企业消息系统。他遵循Mozilla Public License 开源协议。
这里介绍rabbitmq环境找寻和接发消息。
关于amqp可参考http://www.oschina.net/p/rabbitmq/
rabbitmq是一个消费的代理;通过生产者客户端生产一个信息,转送给消费者客户端;在这个传输过程中,根据你的需要可以经过路由、缓冲、持久化来得到这个消息。
先通过一个例子开始:通过rabbitmq输出"Hello World!"
![]()
其中P代表生产者、C表示消费者、中间红色部分代表消息队列
生产者客户端的发送消息程序如下:
using RabbitMQ.Client;
class Sender
{
static void Main(string[] args)
{
var factory = new ConnectionFactory() { HostName = "localhost" };
using (var connection = factory.CreateConnection())
{
using (var channel = connection.CreateModel())
{
channel.QueueDeclare("hello", false, false, false, null);
string message = "Hello World!";
var body = Encoding.UTF8.GetBytes(message);
channel.BasicPublish("", "hello", null, body);
Console.WriteLine("[x] sent {0}", message);
Console.Read();
};
};
}
运行结果如下:
[x] Sent 'Hello World!'
消费者客户端接收消息程序如下:
using RabbitMQ.Client;
using RabbitMQ.Client.Events;
class Consumer
{
static void Main(string[] args)
{
var factory = new ConnectionFactory() { HostName = "localhost" };
using (var connection = factory.CreateConnection())
{
using (var channel = connection.CreateModel())
{
channel.QueueDeclare("hello", false, false, false, null);
var consumer = new QueueingBasicConsumer(channel);
channel.BasicConsume("hello", true, consumer);
Console.WriteLine("[*] Waiting for message." + "To exit press CTRL+C");
while (true)
{
var ea = (BasicDeliverEventArgs)consumer.Queue.Dequeue();
var body = ea.Body;
var message = Encoding.UTF8.GetString(body);
Console.WriteLine("[x] Received {0}", message);
}
}
}
}
运行程序得到的结果如下:
[*] Waiting for messages. To exit press CTRL+C
[x] Received 'Hello World!'
三. RabbitMQ消息监控
首先需要安装好RabbitMQ,然后进入CMD,运行下面的代码:
执行rabbitmq-plugins enable rabbitmq_management
安装完成后再执行:
rabbitmq-service.bat stop
rabbitmq-service.bat install
rabbitmq-service.bat start
输入http://localhost:55672/mgmt/ 就能够进入到监控页面。默认的用户名和密码是: guest 和 guest。

浙公网安备 33010602011771号