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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

消息队列基础讲解

發布時間:2024/4/13 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 消息队列基础讲解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
我們微服務里為什么要使用消息隊列,這里我們在做一個簡單的回顧,我們微服務為什么要使用消息隊列呢,其實就圍繞著這么幾個關鍵的節點展開,第一個就是服務和服務之間的同步變異步,第二個是什么呢,通過消息隊列,解除服務跟服務之間的耦合,讓他們變成一個完全松耦合的設計,還有一個就是流量的削峰,這些問題都可以通過消息中間件來化解,那么我們再來看一下,消息隊列的基礎知識,在消息隊列當中呢,他提供了兩個比較重要的概念,一個叫Provider,一個叫Consumer,那么Provider指的是什么呢,其實就是消息生產者,投遞消息的程序,Consumer就是消息消費者的程序,那么像我們這些圖片當中,其實都有Provider和Consumer的,比如訂單服務,就是消息的提供者,一個Provider,像短信服務和Email服務,他們都是消費消息的,如果我們的程序當中,沒有使用消息隊列,那也就是意味著Provider和Consumer是直接通信的,調用接口,直接發送信息,其實這么做上節課我們說了,缺點是Provider和Consumer是緊耦合的,除了緊耦合還是同步的,不是異步的設計,所以我們需要在Provider和Consumer之間,加入一個消息隊列,那么我們下面看這個圖,使用消息隊列和消息傳送的方式,Provider在提供消息的時候,消息是直接放到消息隊列當中,然后消費者,Consumer是直接從消息隊列里拿東西,其實這種方式不就是我們畫的那個圖嗎,Provider將信息放到MQ中,Consumer去MQ中拿消息,所以中間加了一個消息隊列,那么我們來看一下什么是消息隊列,其實消息隊列就像商品的倉庫或者商店一樣,是生產商品的工廠,和購買商品的用戶之間的中轉站,也就是說消息隊列其實就是,Provider和Consumer之間的那個信息的中轉站,你現在需要把信息傳遞給它,并且是非直接的傳遞,你先要把消息放一個位置,然后Consumer去這個位置去取,這個位置其實就是指的我們的消息隊列,那么隊列里面存了什么呢,在RabbitMQ中,信息流從你的應用程序出發,來到Rabbit隊列當中,所有的信息可以只存在一個隊列,這個隊列你所有的東西都可以往里塞,塞多少都可以,理論上都可以的,隊列可以存儲很多信息,因為他基本是一個無限制的緩存區,什么意思呢,我消息隊列本身并沒有對消息的數量的上限做一個限制,我這里到底能夠存多少信息呢,我說過理論上是無限的,到底取決于什么呢,前提是你的機器的內存足夠大,它是把信息緩存到內存當中的,所以只要你內存足夠大,我消息隊列就可以存,無限的信息,無限的消息,當然如果你內存過小,他存的消息的數量也會存在影響,然后我們再來看,隊列和應用程序的關系,多個生產者可以將消息發送給同一個隊列中,多個消費者也可以從一個隊列接收,其實我們上面這個圖已經畫的很清楚了,這就是多個消費者從一個隊列里進行消費,所以這里消費隊列,Provider和Consumer來講,不是只能支持一個Provider,他可以支持多個Consumer,當然消息隊列也可以有多個,大家一定要把模型記住,Provider和Consumer的解釋,什么是Provider,什么是Consumer,一定要搞清楚這兩個角色,消息的發送方Provider,消費你消息的是Consumer,我們主要是對消息隊列的基礎東西做一個講解

?

總結

以上是生活随笔為你收集整理的消息队列基础讲解的全部內容,希望文章能夠幫你解決所遇到的問題。

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