欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Messges Queue消息隊列詳解

 更新時間:2023年07月31日 11:15:17   作者:悅.L  
這篇文章主要介紹了Messges Queue消息隊列詳解,消息隊列一般簡稱為 MQ,是指利用高效可靠的消息傳遞機制進行與平臺無關的數據交流,并基于數據通信來進行分布式系統(tǒng)的集成,是在消息的傳輸過程中保存消息的容器,需要的朋友可以參考下

1、什么是消息隊列

消息隊列一般簡稱為 MQ (Messges Queue),是指利用高效可靠的消息傳遞機制進行與平臺無關的數據交流,并基于數據通信來進行分布式系統(tǒng)的集成,是在消息的傳輸過程中保存消息的容器。

消息隊列本質上是一個隊列,而隊列中存放的是一個個消息。

隊列是一個數據結構,具有先進先出的特點。

而消息隊列就是將消息放到隊列里,用隊列做存儲消息的介質。

消息的發(fā)送放稱為生產者,消息的接收方稱為消費者。

消息隊列由 Broker(消息服務器,核心部分)、Producer(消息生產者)、Consumer(消息消費者)、Topic(主題)、Queue(隊列)和Message(消息體)組成。

2、消息隊列特點

  • 流量削峰:主要用于在高并發(fā)情況下,業(yè)務異步處理,提供高峰期業(yè)務處理能力,避免系統(tǒng)癱瘓。

假設系統(tǒng)只能處理1000個請求,但這時突然來了3000個請求,如果不加以限制就會造成系統(tǒng)癱瘓。使用消息隊列做緩沖,將多余的請求存放在消息隊列中,等系統(tǒng)根據自己處理請求的能力去消息隊列去。

  • 應用解耦:主要用于當一個業(yè)務需要多個模塊共同實現,或者一條消息有多個系統(tǒng)需要對應處理時,只需要主業(yè)務完成以后,發(fā)送一條MQ,其余模塊消費MQ消息,即可實現業(yè)務,降低模塊之間的耦合。

假設某個服務 A 需要調用服務 B,但是服務 B 突然出現問題,這樣會導致服務 A 也會出現問題。如果使用消息隊列,當服務 A 執(zhí)行完成之后,發(fā)送一條消息到隊列中,服務 B 讀取到這條消息,那么它立刻開始進行業(yè)務的執(zhí)行。

  • 異步通信:主業(yè)務執(zhí)行結束后從屬業(yè)務通過MQ,異步執(zhí)行,減低業(yè)務的響應時間,提高用戶體驗。

假設有一個業(yè)務,要先執(zhí)行服務 A ,然后服務 A 去調用服務 B ,當服務 B 完成之后,服務 A 調用服務 C,這個業(yè)務需要一步步走下去。當使用了消息隊列之后,服務 A 完成之后,可以同時執(zhí)行服務 B 和 服務 C ,這樣就減低業(yè)務的響應時間,提高用戶體驗。

3、消息隊列的的傳輸模式

  • 點對點模式:用于消息生產者和消息消費者之間點到點的通信。

在這里插入圖片描述

消息生產者將消息發(fā)送到Queue(隊列)中,然后消息消費者從Queue(隊列)找取出消息,當消息被消費之后就從Queue(隊列)中刪除,消息只能被一個消息消費者使用。

  • 發(fā)布/訂閱模式:消息生產者向一個特定的Topic(主題)生產消息。0或多個訂閱了該Topic(主題)的消息消費者,接收Topic(主題)的消息, 在這種情況下發(fā)布者和訂閱者彼此不知道。

在這里插入圖片描述

消息生產者和消息消費者只有建立了訂閱關系才能收到消息。

Topic(主題)實現了發(fā)布和訂閱,當消息生產者發(fā)布一個消息,所有訂閱這個Topic(主題)的服務都能得到這個消息。

有兩種訂閱類型:

  • 持久訂閱:訂閱關系建立后,消息就不會消失,不管訂閱者是否都在線;
  • 非持久訂閱:訂閱者為了接受消息,必須一直在線。 當只有一個訂閱者時約等于點對點模式

4、常用的消息隊列

  • ActiveMQ:是Apache下的一個子項目。
    • 優(yōu)點:單機吞吐量每秒萬級,時效性毫秒級,可用性高,基于主從架構實現高可用性,消息可靠性較低的概率丟失數據。支持多種語言、支持Spring2.0的特性、支持多種傳送協(xié)議、支持通過JDBC和journal提供高速的消息持久化。
    • 缺點:官方社區(qū)現在的維護越來越少;社區(qū)活躍度不高。
  • Kafka:是一個分布式消息發(fā)布訂閱系統(tǒng)。為大數據而生的消息中間件,大數據的殺手锏
    • 優(yōu)點:單機吞吐量每秒百萬級,時效性毫秒級,不會丟失數據,不會導致不可用
    • 缺點:支持消息順序,但是一臺代理宕機后,就會產生消息亂序;消費失敗不支持重試;社區(qū)更新較慢
  • RocketMQ:阿里系下開源的一款分布式、隊列模型的消息中間件,3.0版本名稱改為RocketMQ,是阿里參照 kafka 設計思想使用 java 實現的一套消息隊列。
  • 優(yōu)點:單機吞吐量十萬級,時效性毫秒級,消息可以做到 0 丟失,支持 10 億級別的消息堆積
  • 缺點:支持的客戶端語言不多,目前是 java 及 c++;社區(qū)活躍度一般;
  • RabbitMQ:是使用Erlang編寫的一個開源的消息隊列
    • 優(yōu)點:單機吞吐量萬級,時效性微秒級,支持多種語言

到此這篇關于Messges Queue消息隊列詳解的文章就介紹到這了,更多相關消息隊列詳解內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Spring的循環(huán)依賴、三級緩存解決方案源碼詳細解析

    Spring的循環(huán)依賴、三級緩存解決方案源碼詳細解析

    這篇文章主要介紹了Spring的循環(huán)依賴、三級緩存解決方案源碼詳細解析,在Spring中,由于IOC的控制反轉,創(chuàng)建對象不再是簡單的new出來,而是交給Spring去創(chuàng)建,會經歷一系列Bean的生命周期才創(chuàng)建出相應的對象,需要的朋友可以參考下
    2024-01-01
  • Mybatis select記錄封裝的實現

    Mybatis select記錄封裝的實現

    這篇文章主要介紹了Mybatis select記錄封裝的實現,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-10-10
  • 淺談十個常見的Java異常出現原因

    淺談十個常見的Java異常出現原因

    這篇文章主要介紹了十個常見的Java異常出現原因,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-03-03
  • Java多線程之readwritelock讀寫分離的實現代碼

    Java多線程之readwritelock讀寫分離的實現代碼

    這篇文章主要介紹了Java多線程之readwritelock讀寫分離的相關內容,文中涉及具體實例代碼,具有一定參考價值,需要的朋友可以了解下。
    2017-10-10
  • Java中Color和16進制字符串互相轉換的方法

    Java中Color和16進制字符串互相轉換的方法

    這篇文章主要給大家介紹了關于Java中Color和16進制字符串互相轉換的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2018-07-07
  • java的Guava工具包介紹

    java的Guava工具包介紹

    Java開發(fā)的同學應該都使用或者聽說過Google提供的Guava工具包。日常使用最多的肯定是集合相關的工具類,還有Guava cache,除了這些之外Guava還提供了很多有用的功能,鑒于日常想用的時候找不到,這里就梳理一下Guava中那些好用的工具類,想優(yōu)化代碼的時候不妨過來看看
    2021-04-04
  • springboot整合websocket后啟動報錯(javax.websocket.server.ServerContainer not available)

    springboot整合websocket后啟動報錯(javax.websocket.server.ServerCont

    這篇文章主要介紹了springboot整合websocket后啟動報錯(javax.websocket.server.ServerContainer not available),通過分析錯誤信息、排查代碼和配置,找出問題的根源,并給出相應的解決方案,感興趣的可以了解一下
    2024-01-01
  • Java實現定時器的4種方法超全總結

    Java實現定時器的4種方法超全總結

    對于一些特殊的代碼是需要定時執(zhí)行的,下面來看看定時器該如何編寫吧,下面這篇文章主要給大家介紹了關于Java實現定時器的4種方法,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2023-05-05
  • spring boot實戰(zhàn)教程之shiro session過期時間詳解

    spring boot實戰(zhàn)教程之shiro session過期時間詳解

    這篇文章主要給大家介紹了關于spring boot實戰(zhàn)教程之shiro session過期時間的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面來一起看看吧。
    2017-10-10
  • Java上傳文件到服務器指定文件夾實現過程圖解

    Java上傳文件到服務器指定文件夾實現過程圖解

    這篇文章主要介紹了Java上傳文件到服務器指定文件夾實現過程圖解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-08-08

最新評論