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。

 

posted @ 2014-05-09 21:44  邹邹  Views(1202)  Comments(0)    收藏  举报