rabbitmq入門學習

一條消息的產(chǎn)生到消費:
生產(chǎn)者發(fā)送一條消息時,先和RabblitMQ直接建立一條通道(channl),通過channl將消息發(fā)送到交換器,
交換器通過特定的路由規(guī)則routing_key,將消息轉發(fā)到特定的隊列上。

RabblitMQ會監(jiān)聽該隊列,一旦有消費者訂閱該隊列,則將消息發(fā)送給該消費者處理,然后將消息從消息隊列中刪除

RabbitMQ 基礎命令
Virtual_host管理
新建:rabbitmqctl add_vhost xxx
撤銷: rabbitmqctl delete_vhost xxx

用戶管理:
新建用戶:rabbitmqctl add_user usernamexxx pwdxxx
刪除用戶:rabbitmqctl delete_user usernamexxx
修改密碼:rabbitmqctl change_password {username} {newpassword}
設置用戶角色:rabbitmqctl set_user_tags {username} {tag...}
tag 可以為: administrator, monitoring, management

        rabbitmqctl set_permissions -p / username ".*" ".*" ".*"  //添加權限

rabbitmqctl set_user_tags username administrator //修改用戶角色

權限設置說明:rabbitmqctl set_permissions [-pvhostpath] {user} {conf} {write} {read}
Vhostpath:Vhost路徑。
user:用戶名。
Conf:一個正則表達式match哪些配置資源能夠被該用戶訪問。
Write:一個正則表達式match哪些配置資源能夠被該用戶讀。
Read:一個正則表達式match哪些配置資源能夠被該用戶訪問。

清除所有隊列:rabbitmqctl reset
查看隊列信息:rabblimqctl list_queues
可以直接運行rabbitmqctl 來管理自己的mq節(jié)點,也可以指定-n rabbit@[servername]來管理遠程節(jié)點
servername可以是ip或者域名
隊列和交換器的durable 屬性默認false ,斷電重啟之后重新創(chuàng)建隊列,消息丟失,將它設置為true可以不
用重新建隊列

持久化消息:能從服務器崩潰中恢復消息
(1)消息發(fā)布前,將它的投遞模式設置為2標記持久化
(2)發(fā)送到持久的交換器
(3)并投放到持久化隊列
恢復:寫入磁盤上的持久化文件,rabbit會在消息提交到日志后才發(fā)送響應,但若消息路由到了
非持久化隊列,RQM會自動從持久性日志刪除,并無法在重啟中自動恢復。

exchange 交換機和綁定routing key

exchange 的作用就是類似路由器,routing key 就是路由鍵,服務器會根據(jù)路由鍵
將消息從交換機路由到隊列上去。
exchange 有多個種類,direct、fanout、topict、header(非路由鍵匹配,功能和direct類
似,很少用。)前三種類似集合對應關系那樣,(direct) 1:1, (fanout) 1:N
(topic) N:1

direct 1:1 類似完全匹配。
fanout 1:N可以把一個消息并行到多個隊列,當多個隊列綁定到fanout的交換器
    ,那么交換器一次性拷貝多個消息分別發(fā)送到綁定的隊列上,每個隊列有這個消息的副本。
最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

  • 1,簡單介紹與服務安裝 1.1,背景 在分布式系統(tǒng)中,我們廣泛運用消息中間件進行系統(tǒng)間的數(shù)據(jù)交換,便于異步解耦?,F(xiàn)...
    紅薯愛帥閱讀 278評論 0 3
  • 1. 方法論 RabbitMQ 是一個由 Erlang 語言開發(fā)的 并基于AMQP 的開源實現(xiàn)。AMQP :Adv...
    VienFu閱讀 836評論 0 1
  • 1,RabbitMQ的由來 RabbitMQ是一個由erlang開發(fā)的AMQP(Advanced Message ...
    紅薯愛帥閱讀 369評論 0 1
  • http://liuxing.info/2017/06/30/Spring%20AMQP%E4%B8%AD%E6%...
    sherlock_6981閱讀 16,208評論 2 11
  • 什么叫消息隊列? 消息(Message)是指在應用間傳送的數(shù)據(jù)。消息可以非常簡單,比如只包含文本字符串,也可以更復...
    Agile_dev閱讀 2,438評論 0 24

友情鏈接更多精彩內(nèi)容