方式一:通過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。