日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

php 消息中间件,简单说说消息中间件RabbitMQ(上)

發布時間:2023/12/29 php 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 php 消息中间件,简单说说消息中间件RabbitMQ(上) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

MQ,消息隊列,消息以管道的方式進行傳遞。其就像個“快遞員”,將消息從生產者送到消費者處。RabbitMQ是消息隊列中的一種。

消息隊列適用于異步返回執行時間長,且消息發送者不多關注執行結果的情形。

中間件是將具體業務和底層邏輯解耦的軟件,分為:MOM(消息中間件)、RPC(遠程過程調用中間件)、UDA(數據訪問中間件)、TPM(交易中間件)等。

消息中間件,又稱為消息隊列、消息隊列中間件,分為RabbitMQ、ActiveMQ、Kafka等。

各部分的名字和作用?

1.Brocker:消息隊列服務器實體,Rabbitmq可以作為一個選擇。

2.Exchange:消息交換機,用于接收、分配消息。指定消息按什么規則,路由到哪個隊列。

3.Queue:消息隊列,用于存儲生產者的消息。每個消息都會被投入到一個或者多個隊列里。

4.Binding Key:綁定關鍵字,用于把交換器的消息綁定到隊列中,它的作用是把exchange和queue按照路由規則binding起來。

5.Routing Key:路由關鍵字,用于把生產者的數據分配到交換器上。exchange根據這個關鍵字進行消息投遞。

6.Vhost:虛擬主機,一個broker里可以開設多個vhost,用作不用用戶的權限分離。

7.Producer:消息生產者,就是投遞消息的程序。

8.Consumer:消息消費者,就是接受消息的程序。

9.Channel:信道,消息推送使用的通道。可建立多個channel,每個channel代表一個會話任務。

使用流程?

1.消息接收客戶端連接到消息隊列服務器,打開一個channel。

2.客戶端聲明一個exchange,并設置相關屬性。

3.客戶端聲明一個queue,并設置相關屬性。

4.客戶端使用routing key,在exchange和queue之間建立好綁定關系。

5.消息發布客戶端投遞消息到exchange。

6.exchange接收到消息后,就根據消息的key和已經設置的binding,進行消息路由,將消息投遞到一個或多個隊列里。

總結起來就是:生產者發送一條消息給交換機——交換機根據關鍵字匹配到對應的隊列——將消息存入隊列——消費者從隊列中取出消息使用。

我們的項目為什么要選擇RabbitMQ,而不選擇別的消息中間件?

1.除了Qpid,RabbitMQ是唯一一個實現了AMQP標準的消息服務器;

2.可靠性,RabbitMQ的持久化支持,保證了消息的穩定性;

3.高并發,RabbitMQ使用了Erlang開發語言,Erlang是為電話交換機開發的語言,天生自帶高并發光環,和高可用特性;

4.集群部署簡單,正是因為Erlang使得RabbitMQ集群部署變的超級簡單;

5.社區活躍度高,根據網上資料來看,RabbitMQ也是首選;

2.工作隊列模式:一個生產者產生的消息可以供多個消費者消費,但是一個消息只能被其中一個消費者消費。

3.發布/訂閱模式:多了一個交換機,生產者將消息發送到交換機上,交換機發送消息給各個隊列,此時,一個消息可以被多個消費者獲取。

值得一提的是,這又叫廣播模式,是最常用的模式了,在ITOO中使用的就是這種模式。

4.路由模式:又多了一個routing key,生產者發送消息帶有routingkey,消費者選擇自己需要的消息進行消費,也配置一個routing key。

5.主題模式:又多了一個通配符,這樣消費端如果需要好幾種消息的時候,不用一個一個的設置,直接用通配符可以接收自己想要的各種消息。

6.RPC:c對s說“我這有個任務需要你的幫助”,s處理完后,將結果返回給c。

總結

以上是生活随笔為你收集整理的php 消息中间件,简单说说消息中间件RabbitMQ(上)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。