nodejs中使用RabbitMq消息中心系統的方式


方式一:通過npm安裝amqp庫

方式二:通過rabbit.js庫http://www.squaremobius.net/rabbit.js/

AMQP:高級消息隊列協議,是應用層協議的一個開放標准,RabbitMq是用Erlang語言編寫的一個AMQP的開源實現。

核心組件:Exchange & Queue

Exchange稱為交換器,Queue是消息隊列,這兩者都在服務器端,Producer和Consumer分別是生產者和消費者,在客戶端

原理:

生產者發送消息給交換器Exchange並帶一個RouteKey,如果RouteKey和Exchange與Queue之間的BindKey是一樣的,交換器則將它發送給對應的消息隊列Queue。

RouteKey和Bindkey在做比較的時候有三種類型

1,直接式direct

通過精確匹配消息的路由關鍵字,將消息路由到0個或多個消息隊列中,判斷路由關鍵字和綁定關鍵字是不是相等(綁定關鍵字是用來將消息隊列綁定到哪個交換器,他們是多對多的關系)

2,廣播式fanout

廣播式交換器類型提供了這樣的路由機制:不論消息的路由關鍵字是什么,這條消息都會被路由到所有與該交換器綁定的消息隊列中

3,主題式topic

主題式交換器類型提供了這樣的路由機制:通過消息的路由關鍵字和綁定關鍵字的模式匹配,將消息路由到被綁定的隊列中。這種路由可以被用來支持經典的發布/訂閱消息傳輸模型,將消息傳遞給部分或全部匹配主題模式的多個消費者。

這種類型下的綁定關鍵字必須是這種格式的:" *.xxx.# ",通配符*表示匹配任意一個單詞,#匹配0個或多個單詞,綁定關鍵字用零個或多個標記組成,每個標記之間"."符合分隔。

比如,綁定關鍵字*.stack.#匹配路由關鍵字usd.stack和abcd.stack.efg,但不匹配stack.efg。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM