NET下RabbitMQ实践 [配置篇]

这个系列目前计划写四篇,分别是配置,示例,WCF发布,实战。当然不排除加餐情况。

介绍:

rabbitMQ是一个在AMQP协议标准基础上完整的,可服用的企业消息系统。他遵循Mozilla Public License开源协议。采用 Erlang 实现的工业级的消息队列(MQ)服务器。

RabbitMQ的官方站:http://www.rabbitmq.com/    
     AMQP(高级消息队列协议) 是一个异步消息传递所使用的应用层协议规范,作为线路层协议,而不是API(例如JMS),AMQP 客户端能够无视消息的来源任意发送和接受信息。AMQP的原始用途只是为金融界提供一个可以彼此协作的消息协议,而现在的目标则是为通用消息队列架构提供通用构建工具。因此,面向消息的中间件 (MOM)系统,例如发布/订阅队列,没有作为基本元素实现。反而通过发送简化的AMQ实体,用户被赋予了构建例如这些实体的能力。这些实体也是规范的一 部分,形成了在线路层协议顶端的一个层级:AMQP模型。这个模型统一了消息模式,诸如之前提到的发布/订阅,队列,事务以及流数据,并且添加了额外的特性,例如更易于扩展,基于内容的路由。    
     目前该开源项目已非常成熟,并应用于金融系统等领域,具有高并发效率,高可靠性等特点,并提供了相应的.net客户端实现(含源码)。

.NET客户端下载链接:http://www.rabbitmq.com/dotnet.html, 目前最新版本号 2.1.1。网上有许多关于在linux平台上的rabbitmq的(包括集群)安装的介绍,如下:
     linux: http://www.javaeye.com/wiki/topic/640537    
     下面是在window环境下的配置:
     首先需要下载erlang运行时环境(Windows binary): http://erlang.org/download.html。选择要安装的程序版本,比如:http://erlang.org/download/otp_win32_R12B-5.exe。
     注:本文环境安装在了D盘,形如: D:\Program Files (x86)\erl5.6.5。下面设置一下环境变量:          接着下载RabbitMQ Server(目前最新版本为2.1.1),链接如下:http://www.rabbitmq.com/server.html。下载并安装其中的window安装包到D盘下:
     注: 源码链接http://www.rabbitmq.com/releases/rabbitmq-server/v2.1.1/rabbitmq-server-2.1.1.zip。在CMD命令行下运行上面的rabbitmq server程序:

D:\rabbitmq\sbin>rabbitmq-serverActivating RabbitMQ plugins ...

0 plugins activated:

        .....

starting file handle cache server                                     ...done

  starting worker pool                                                  ...done

  starting database                                                     ...done

  starting codec correctness check                                      ...done

  -- external infrastructure ready

  starting exchange type registry                                       ...done

  starting exchange type topic                                          ...done

  starting exchange type headers                                        ...done

  starting exchange type fanout                                         ...done

  starting exchange type direct                                         ...done

  starting statistics event manager                                     ...done

  starting logging server                                               ...done

  -- kernel ready

  starting node monitor                                                 ...done

  starting cluster delegate                                             ...done

  starting guid generator                                               ...done

  starting alarm handler                                                ...done

  starting memory monitor                                               ...done

  -- core 
initialized

  starting empty DB check                                               ...done

  starting exchange recovery                                            ...done

  starting queue supervisor and queue recovery                          ...done

  -- message delivery logic ready

  starting error log relay                                              ...done

  starting networking                                                   ...done

  -- network listeners 
available

broker running

这样rabbitmq server就运行起来了。在使用rabbitmq之前,如果对该项目不太了解的话,可以看一下这两个速成链接:

AMQP和RabbitMQ入门      rabbitmq 学习-6-rabbitmq基础   
      下面我们使用rabbitmqctl控制台命令(位于D:\rabbitmq\sbin>)来配置vhost,创建用户,密码,绑定权限等。首先创建vhosts,命令如下:
      添加创建虚拟主机:

D:\rabbitmq\sbin>rabbitmqctl add_vhost dnt_mq   //注:删除虚拟主机 rabbitmqctl delete_vhost vhostpath

用下面指定就可以显示出所有虚拟主机信息:

D:\rabbitmq\sbin>rabbitmqctl list_vhosts

     Listing vhosts ...

     /   (根目录)

     dnt_mq

下面添加用户和密码(用户名daizhj, 密码:617595):

D:\rabbitmq\sbin>rabbitmqctl add_user daizhj 617595  //注:修改用户密码:rabbitmqctl change_password username newpassword

绑定用户权限:

D:\rabbitmq\sbin>rabbitmqctl set_permissions -p dnt_mq daizhj ".*" ".*" ".*"

   Setting permissions for user "daizhj" in vhost "dnt_mq" ...

列出用户权限:

D:\rabbitmq\sbin>rabbitmqctl list_user_permissions daizhj  //注:清除用户权限 rabbitmqctl clear_permissions [-p vhostpath] username

     Listing permissions for user "daizhj" ...

     dnt_mq  .*      .*      .*      client

到这里,就完成了单机上rabbitmq的环境配置。在下一篇文章中,将会介绍使用其.net客户端进行简单的开发。

时间: 2024-08-05 21:42:37

NET下RabbitMQ实践 [配置篇]的相关文章

一起谈.NET技术,NET下RabbitMQ实践 [配置篇]

     这个系列目前计划写四篇,分别是配置,示例,WCF发布,实战.当然不排除加餐情况.      介绍:      rabbitMQ是一个在AMQP协议标准基础上完整的,可服用的企业消息系统.他遵循Mozilla Public License开源协议.采用 Erlang 实现的工业级的消息队列(MQ)服务器.      RabbitMQ的官方站:http://www.rabbitmq.com/          AMQP(高级消息队列协议) 是一个异步消息传递所使用的应用层协议规范,作为线路

NET 下RabbitMQ实践 [实战篇]

之前的文章中,介绍了如何将RabbitMQ以WCF方式进行发布.今天就介绍一下我们产品中如何使用RabbitMQ的! 在Discuz!NT企业版中,提供了对HTTP错误日志的记录功能,这一点对企业版非常重要,另外存储错误日志使用了MongoDB,理由很简单,MongoDB的添加操作飞快,即使数量过亿之后插入速度依旧不减.     在开始正文之前,先说明一下本文的代码分析顺序,即:程序入口==>RabbitMQ客户端===>RabbitMQ服务端.好了,闲话少说,开始正文!     首先是程序入

NET下RabbitMQ实践 [示例篇]

在上一篇文章中,介绍了在window环境下安装erlang,rabbitmq-server,以免配置用户,权限,虚拟机等内容.今天将会介绍如果使用rabbitmq进行简单的消息入队,出队操作,因为本文演示的环境要用到上文中配置的环境,所以要运行本文sample,请先按上一篇中完成相应环境配置.         首先,我们下载官方的.net客户端软件,链接:http://www.rabbitmq.com/dotnet.html.下载并安装之后,将安装目录下的这两个DLL文件复制到我们示例项目中,并

NET下RabbitMQ实践 [WCF发布篇]

在之前的两篇文章中,主要介绍了RabbitMQ环境配置,简单示例的编写.今天将会介绍如何使用WCF将RabbitMQ列队以服务的方式进行发布. 注:因为RabbitMQ的官方.net客户端中包括了WCF的SAMPLE代码演示,很适合初学者,所以我就偷了个懒,直接对照它的SAMPLE来说明了,算是借花献佛吧,呵呵.首先我们下载相应源码(基于.NET 3.0),本文主要对该源码包中的代码进行讲解,链接如下:    Binary, compiled for .NET 3.0 and newer (zi

一起谈.NET技术,NET下RabbitMQ实践 [WCF发布篇]

在之前的两篇文章中,主要介绍了RabbitMQ环境配置,简单示例的编写.今天将会介绍如何使用WCF将RabbitMQ列队以服务的方式进行发布. 注:因为RabbitMQ的官方.net客户端中包括了WCF的SAMPLE代码演示,很适合初学者,所以我就偷了个懒,直接对照它的SAMPLE来说明了,算是借花献佛吧,呵呵.首先我们下载相应源码(基于.NET 3.0),本文主要对该源码包中的代码进行讲解,链接如下:    Binary, compiled for .NET 3.0 and newer (zi

Windows下安装与配置Nginx web服务器

前几篇文章,我们使用nginx都是在linux环境下,今天由于工作的需要.需要在windows环境也使用nginx搭建web服务器. 下面记录下有关nginx下的搭建与配置. 注意本次实验使用的windows server 2003 64bit,而且还是在虚拟机中.IP地址为192.168.1.221 首先去官网下载 nginx最新的的Windows版本,如下: http://nginx.org/en/download.html 下载到软件包后,解压 nginx-1.7.6.zip包到你喜欢的根

Home Lab家庭实验室搭建之网络配置篇

本文讲的是Home Lab家庭实验室搭建之网络配置篇,在本文中,我将介绍构建网络的基本设置,这是一个简单的平面化网络,处于作为防火墙,NAT,DHCP和VPN的路由器的后面. 第一个操作是创建一个虚拟交换机,该平面网络中的所有虚拟机都将连接到该虚拟交换机. 几乎所有的虚拟解决方案都支持在一个名称或另一个名称下配置虚拟交换机.由于我为我的家庭实验室选择了ESXi,下文中所显示的命令都是用于此平台的命令,但一般来说,你可以使用Hyper-V或XenServer完成相同的操作. 我通过命令行显示所有步

centOS7 下利用iptables配置IP地址白名单的方法_Linux

编辑iptables配置文件,将文件内容更改为如下,则具备了ip地址白名单功能 #vim /etc/sysconfig/iptables *filter :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [0:0] -N whitelist -A whitelist -s 1.2.3.0/24 -j ACCEPT -A whitelist -s 4.5.6.7 -j ACCEPT -A INPUT -m state --state

Windows环境下完全手工配置Apache、MySQL和PHP

    现在LAMP(Linux.Apache.MySQL.PHP/Perl/Python的简称)已经很流行了.在Windows下也有类似的,比如 WAMP(Apache, MySQL, PHP on Windows).这篇文章主要是介绍如何在Windows环境下完全手工配置Apache.MySQL和PHP,都是解压后直接修改配置文件的.当然也可以下载执行安装文件的版本,一个个进行自动安装.甚至可以下载这些软件的集合版本(WampServer,XAMPP),一步到位的安装.这里进行的是解压安装,