NET下RabbitMQ實踐 [配置篇]

作者: 代震軍  來源: 博客園  發布時間: 2010-10-25 13:58  閱讀: 4327 次  推薦: 0   原文鏈接   [收藏]  

     這個系列目前計劃寫四篇,分別是配置,示例,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-server
Activating 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客戶端進行簡單的開發。  

0
0
 
標簽:.NET RabbitMQ
 
 

文章列表

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()