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

來源:互聯網
上載者:User

標籤:主題   使用   系統   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訊息中心系統的方式

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.