RabbitMQ使用

1. 說明 

  在企業應用系統領域,會面對不一樣系統之間的通訊、集成與整合,尤爲當面臨異構系統時,這種分佈式的調用與通訊變得愈加重要。其次,系統中通常會有不少對實時性要求不高的可是執行起來比較較耗時的地方,好比發送短信,郵件提醒,更新文章閱讀計數,記錄用戶操做日誌等等,若是實時處理的話,在用戶訪問量比較大的狀況下,對系統壓力比較大。html

面對這些問題,咱們通常會將這些請求,放在消息隊列MQ中處理;異構系統之間使用消息進行通信。node

    MQ全稱爲Message Queue, 消息隊列(MQ)是一種應用程序對應用程序的通訊方法。應用程序經過讀寫出入隊列的消息(針對應用程序的數據)來通訊,而無需專用鏈接來連接它們。消息傳遞指的是程序之間經過在消息中發送數據進行通訊,而不是經過直接調用彼此來通訊,直接調用一般是用於諸如遠程過程調用的技術。排隊指的是應用程序經過 隊列來通訊。隊列的使用除去了接收和發送應用程序同時執行的要求。web

  MQ是消費-生產者模型的一個典型的表明,一端往消息隊列中不斷寫入消息,而另外一端則能夠讀取或者訂閱隊列中的消息。數據庫

   RabbitMQ是一個在AMQP基礎上完整的,可複用的企業消息系統。他遵循Mozilla Public License開源協議。 性能優化

  消息傳遞相較文件傳遞與遠程過程調用(RPC)而言,彷佛更勝一籌,由於它具備更好的平臺無關性,並可以很好地支持併發與異步調用。因此若是系統中出現了以下狀況:cookie

  • 對操做的實時性要求不高,而須要執行的任務極爲耗時;
  • 存在異構系統間的整合;

  通常的能夠考慮引入消息隊列。對於第一種狀況,經常會選擇消息隊列來處理執行時間較長的任務。引入的消息隊列就成了消息處理的緩衝區。消息隊列引入的異步通訊機制,使得發送方和接收方都不用等待對方返回成功消息,就能夠繼續執行下面的代碼,從而提升了數據處理的能力。尤爲是當訪問量和數據流量較大的狀況下,就能夠結合消息隊列與後臺任務,經過避開高峯期對大數據進行處理,就能夠有效下降數據庫處理數據的負荷。 架構

  本文簡單介紹在RabbitMQ這一消息代理工具,以及在.NET中如何使用RabbitMQ.併發

2. 搭建環境

  2.1 安裝Erlang語言運行環境異步

  因爲RabbitMQ使用Erlang語言編寫,因此先安裝Erlang語言運行環境。分佈式

      2.2 安裝otp_win64_19.3.exe  地址: https://pan.baidu.com/s/1WCFe9meAEtHPVpdF-c-8TQ

      2.3.設置環境變量

  手動編輯「path」加入路徑  C:\Program Files\erl8.3\bin  

  

  2.4.檢查Erlang是否安裝成功

  打開 cmd ,輸入 erl 後回車,若是看到以下的信息,代表安裝成功。

  

  2.5 安裝RabbitMQ服務端

  地址 https://pan.baidu.com/s/1bznEJfw1inJfExk6jiUG2A ·

  下載安裝。

   如今RabbitMQ的服務端已經啓動起來了。

  要查看和控制RabbitMQ服務端的狀態,能夠用rabbitmqctl這個腳本。

  好比查看狀態:(進入RabbitMQ的安裝目錄)

rabbitmqctl status

  

  假如顯示node沒有鏈接上,須要到C:\Windows目錄下,將.erlang.cookie文件,拷貝到用戶目錄下 C:\Users\{用戶名},這是Erlang的Cookie文件,容許與Erlang進行交互。

   使用命令查看用戶:

rabbitmqctl list_users

  RabbitMQ會爲咱們建立默認的用戶名guest和密碼guest,guest默認擁有RabbitMQ的全部權限。

  通常的,咱們須要新建一個咱們本身的用戶,設置密碼,並授予權限,並將其設置爲管理員,可使用下面的命令來執行這一操做:

rabbitmqctl  add_user  JC JayChou   //建立用戶JC密碼爲JayChou
rabbitmqctl  set_permissions  JC ".*"  ".*"  ".*"    //賦予JC讀寫全部消息隊列的權限
rabbitmqctl  set_user_tags JC administrator    //分配用戶組

  修改JC密碼爲123:

rabbitmqctl change_password JC  123

  刪除用戶JC:

rabbitmqctl delete_user  JC

  也能夠開啓rabbitmq_management插件,在web界面查看和管理RabbitMQ服務

    在此我向你們推薦一個Java學習交流羣。交流學習羣號:874811168 裏面會分享一些資深架構師錄製的視頻錄像:有Spring,MyBatis,Netty源碼分析,高併發、高性能、分佈式、微服務架構的原理,JVM性能優化、分佈式架構等這些成爲架構師必備的知識體系。還能領取免費的學習資源,一塊兒學習,一塊兒進步,目前受益良多。

rabbitmq-plugins enable rabbitmq_management

    出處:https://www.cnblogs.com/saodiseng2015/p/9745579.html

相關文章
相關標籤/搜索