標籤:主題 使用 系統 npm www 應用程式層 語言 node 編寫
方式一:通過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。
nodejs中使用RabbitMq訊息中心系統的方式