Rabbit MQ學習總結

2021-08-24 20:18:36 字數 1452 閱讀 7234

1,  獲取conection

2,  獲取channel

3,  定義exchange,queue

4,  使用乙個routingkey將queue binding到乙個exchange上

5,  通過指定乙個exchange和乙個routingkey來將訊息傳送到對應的queue上,

6,  接收方在接收時也是獲取connection,接著獲取channel,然後指定乙個queue直接到它關心的queue上取訊息,它對exchange,routingkey及如何binding都不關心,到對應的queue上去取訊息就ok了(這個是重點,接收方,只關心queue的名字即可,其他的都不關心!!!!!)

換句話說:

傳送放關心:exchangname, queuename,bindingkey

接收方關心:quueuname

rabbitmq中有三種常用的**方式,分別是:

directexchange:路由鍵方式**訊息。

fanoutexchange:廣播方式**訊息。

topicexchange:主題匹配方式**訊息

direct: 先策略匹配到對應繫結的佇列後 才會被投送到該佇列  交換機跟佇列必須是精確的對應關係 這種最為簡單

topic: **訊息主要是根據萬用字元。 在這種交換機下,佇列和交換機的繫結會定義一種路由模式,那麼,萬用字元就要在這種路由模式和路由鍵之間匹配後交換機才能**訊息 這種可以認為是direct 的靈活版  

headers:也是根據規則匹配, 相較於 direct 和 topic 固定地使用 routingkey , headers 則是乙個自定義匹配規則的型別

在佇列與交換器繫結時 會設定一組鍵值對規則 訊息中也包括一組鍵值對( headers 屬性) 當這些鍵值對有一對 或全部匹配時 訊息被投送到對應佇列

fanout : 訊息廣播模式 不管路由鍵或者是路由模式 會把訊息發給繫結給它的全部佇列  如果配置了routingkey會被忽略

direct exchange

direct exchange是rabbitmq預設的交換機模式,也是最簡單的模式,根據key全文匹配去尋找佇列

四個概念非常重要: 虛擬主機(virtual host),交換機(exchange),佇列(queue)和繫結(binding)

- 交換器(exchange),它是傳送訊息的實體。

- 佇列(queue),這是接收訊息的實體。

- 繫結器(bind),將交換器和佇列連線起來,並且封裝訊息的路由資訊。

exchange指向queue的黑色線—routingkey,可以將它簡單的理解為一條連線exchange和queue的路線

exchange和queue都需要通過channel來進行定義,而routingkey則只需要在binding時取個名字就行了。

RabbitMQ 知識總結

amqp協議是乙個提供統一訊息服務的應用層標準協議,並不會受到客戶端 中介軟體不同產品 不同開發語言等條件的影響。rabbitmq則是基於該協議實現的。舉個例子來說,如下圖,生產者將訊息傳送到交換機上,交換機接收到資訊以後按照相應的路由鍵路由到佇列中,這裡的交換機只是起到了路由的功能,實際上訊息儲存...

RabbitMQ 知識總結

amqp協議是乙個提供統一訊息服務的應用層標準協議,並不會受到客戶端 中介軟體不同產品 不同開發語言等條件的影響。rabbitmq則是基於該協議實現的。舉個例子來說,如下圖,生產者將訊息傳送到交換機上,交換機接收到資訊以後按照相應的路由鍵路由到佇列中,這裡的交換機只是起到了路由的功能,實際上訊息儲存...

RabbitMQ入門 總結

1rabbitmq入門 認識並安裝rabbitmq 以windows系統為例 我們初步認識並安裝了rabbitmq 2rabbitmq入門 hello rabbitmq 例項 通過小例子了解了 的實現方式 3rabbitmq入門 工作佇列 work queue 認識了工作佇列 迴圈分發 公平分發 訊...