RabbitMQ入門

RabbitMQ是一個由erlang開發的基於AMQP(Advanced Message Queue)協議的開源實現。用於在分佈式系統中存儲轉發消息,在易用性、擴展性、高可用性等方面都很是的優秀。是當前最主流的消息中間件之一。html

RabbitMQ的官方服務器

  • 概念:
    • Brocker:消息隊列服務器實體。
    • Exchange:消息交換機,指定消息按什麼規則,路由到哪一個隊列。
    • Queue:消息隊列,每一個消息都會被投入到一個或者多個隊列裏。
    • Binding:綁定,它的做用是把exchange和queue按照路由規則binding起來。
    • Routing Key:路由關鍵字,exchange根據這個關鍵字進行消息投遞。
    • Vhost:虛擬主機,一個broker裏能夠開設多個vhost,用做不用用戶的權限分離。
    • Producer:消息生產者,就是投遞消息的程序。
    • Consumer:消息消費者,就是接受消息的程序。
    • Channel:消息通道,在客戶端的每一個鏈接裏,可創建多個channel,每一個channel表明一個會話任務。
  • 消息隊列的使用過程大概以下:
    • 消息接收
      • 客戶端鏈接到消息隊列服務器,打開一個channel。
      • 客戶端聲明一個exchange,並設置相關屬性。
      • 客戶端聲明一個queue,並設置相關屬性。
      • 客戶端使用routing key,在exchange和queue之間創建好綁定關係。
    • 消息發佈
      • 客戶端投遞消息到exchange。
      • exchange接收到消息後,就根據消息的key和已經設置的binding,進行消息路由,將消息投遞到一個或多個隊列裏。
  • AMQP 裏主要要說兩個組件:
    • Exchange 和 Queue
    • 綠色的 X 就是 Exchange ,紅色的是 Queue ,這二者都在 Server 端,又稱做 Broker
    • 這部分是 RabbitMQ 實現的,而藍色的則是客戶端,一般有 Producer 和 Consumer 兩種類型。
  • Exchange一般分爲四種:
    • fanout:該類型路由規則很是簡單,會把全部發送到該Exchange的消息路由到全部與它綁定的Queue中,至關於廣播功能
    • direct:該類型路由規則會將消息路由到binding key與routing key徹底匹配的Queue中
    • topic:與direct類型類似,只是規則沒有那麼嚴格,能夠模糊匹配和多條件匹配
    • headers:該類型不依賴於routing key與binding key的匹配規則來路由消息,而是根據發送的消息內容中的headers屬性進行匹配
  • 使用場景

下載與安裝


管理工具

操做起來很簡單,只須要在DOS下面,進入安裝目錄(安裝路徑\RabbitMQ Server\rabbitmq_server-3.2.2\sbin)執行以下命令就能夠成功安裝。分佈式

rabbitmq-plugins enable rabbitmq_management

能夠經過訪問:http://localhost:15672進行測試,默認的登錄帳號爲:guest,密碼爲:guest。工具

其餘配置

1. 安裝完之後erlang須要手動設置ERLANG_HOME 的系統變量。測試

set ERLANG_HOME=F:\Program Files\erl9.0
#環境變量`path`里加入:%ERLANG_HOME%\bin
#環境變量`path`里加入: 安裝路徑\RabbitMQ Server\rabbitmq_server-3.6.10\sbin

2.激活Rabbit MQ's Management Pluginspa

使用Rabbit MQ 管理插件,能夠更好的可視化方式查看Rabbit MQ 服務器實例的狀態,你能夠在命令行中使用下面的命令激活。插件

rabbitmq-plugins.bat  enable  rabbitmq_management

3.建立管理用戶命令行

rabbitmqctl.bat add_user sa 123456

4. 設置管理員code

rabbitmqctl.bat set_user_tags sa administrator

5.設置權限server

rabbitmqctl.bat set_permissions -p / sa ".*" ".*" ".*"

6. 其餘命令

#查詢用戶:
    rabbitmqctl.bat list_users
#查詢vhosts:
    rabbitmqctl.bat list_vhosts
#啓動RabbitMQ服務:
    net stop RabbitMQ && net start RabbitMQ

以上這些,帳號、vhost、權限、做用域等基本就設置完了。

相關文章
相關標籤/搜索