国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【中間件】MQ是什么?RabbitMQ又是什么?

這篇具有很好參考價值的文章主要介紹了【中間件】MQ是什么?RabbitMQ又是什么?。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。


大家好,我是卷心菜。如果您看完這篇文章有所收獲,可以三連支持博主哦~,嘻嘻。


??作者簡介:在校大學(xué)生一枚,Java領(lǐng)域新星創(chuàng)作者,Java、Python正在學(xué)習(xí)中,期待和大家一起學(xué)習(xí)一起進步~
??個人主頁:我是一棵卷心菜的個人主頁
??本文專欄:RabbitMQ學(xué)習(xí)
??自我提醒:多學(xué)多練多思考,編程能力才能節(jié)節(jié)高!

一、MQ的基本概念

MQ全稱 Message Queue(消息隊列),是在消息的傳輸過程中保存消息的容器,其本質(zhì)是個隊列。多用于分布式系統(tǒng)之間進行通信。其中,發(fā)送數(shù)據(jù)的一方稱為生產(chǎn)者;接收數(shù)據(jù)的一方稱為消費者。

rabbitmq是中間件,RabbitMQ,java-rabbitmq,rabbitmq,中間件,java


二、MQ的優(yōu)勢

1、應(yīng)用解耦

  • 以電商應(yīng)用為例,應(yīng)用中有訂單系統(tǒng)、庫存系統(tǒng)、物流系統(tǒng)、支付系統(tǒng)。當用戶創(chuàng)建訂單后,如果耦合調(diào)用庫存系統(tǒng)、物流系統(tǒng)、支付系統(tǒng),任何一個子系統(tǒng)出現(xiàn)了故障,都會造成下單操作異常。

rabbitmq是中間件,RabbitMQ,java-rabbitmq,rabbitmq,中間件,java

  • 當轉(zhuǎn)變?yōu)橄㈥犃械姆绞胶?,系統(tǒng)間調(diào)用的問題會減少很多,比如庫存系統(tǒng)因為發(fā)生故障,需要幾分鐘來修復(fù)。但并不會影響我們正常下單,因為下單后,可以把訂單系統(tǒng)寫入消息隊列,就不用擔心其它的后續(xù)操作了,實現(xiàn)了解耦。

rabbitmq是中間件,RabbitMQ,java-rabbitmq,rabbitmq,中間件,java


2、異步處理

  • 以用戶注冊后,需要發(fā)注冊郵件和注冊短信為例,使用傳統(tǒng)方式時,我們會將注冊信息寫入數(shù)據(jù)庫成功后,發(fā)送注冊郵件同時發(fā)送注冊短信。當這些任務(wù)完成后,返回給客戶端。

rabbitmq是中間件,RabbitMQ,java-rabbitmq,rabbitmq,中間件,java

  • 當我們使用消息隊列,可以將不是必須的業(yè)務(wù)邏輯,進行異步處理。用戶的響應(yīng)時間相當于是注冊信息寫入數(shù)據(jù)庫的時間,注冊郵件、發(fā)送短信寫入消息隊列后,直接返回,因此用戶的響應(yīng)時間非常的快。

rabbitmq是中間件,RabbitMQ,java-rabbitmq,rabbitmq,中間件,java


3、流量削峰

  • 以訂單系統(tǒng)為例,如果訂單系統(tǒng)在正常時段最多可以處理一萬次訂單,但到了雙十一,有兩萬次下單操作,這時訂單系統(tǒng)就會崩掉。因此可以使用消息隊列做緩沖,我們可以把一秒內(nèi)下的訂單分散成一段時間來處理,這時有些用戶可能在下單十幾秒后才能收到下單成功的操作,但總比不能下單的體驗感好!

三、MQ的分類

  • 目前有很多MQ的產(chǎn)品,例如RabbitMQ、RocketMQ、ActiveMQ、Kafka、ZeroMQ等,也可以使用Redis充當消息隊列,而這些消息隊列產(chǎn)品,各有側(cè)重,在實際選型時,需要結(jié)合自身需求及MQ產(chǎn)品特征,綜合考慮。
    rabbitmq是中間件,RabbitMQ,java-rabbitmq,rabbitmq,中間件,java

四、RabbitMQ簡介

RabbitMQ是一個消息中間件,采用Erlang語言開發(fā)。它接受并轉(zhuǎn)發(fā)消息。你可以把它當做一個快遞站點,當你要發(fā)送一個包裹時,你把你的包裹放到快遞站,快遞員最終會把你的快遞送到收件人那里。RabbitMQ 與快遞站的主要區(qū)別在于,它不處理快件而是接收,存儲和轉(zhuǎn)發(fā)消息數(shù)據(jù)。

  • RabbitMQ基礎(chǔ)架構(gòu)如圖:
    rabbitmq是中間件,RabbitMQ,java-rabbitmq,rabbitmq,中間件,java

五、四大核心概念

  • 生產(chǎn)者:產(chǎn)生數(shù)據(jù)發(fā)送消息的程序是生產(chǎn)者
  • 交換機:交換機是 RabbitMQ 非常重要的一個部件,一方面它接收來自生產(chǎn)者的消息,另一方面它將消息推送到隊列中。交換機必須確切知道如何處理它接收到的消息,是將這些消息推送到特定隊列還是推送到多個隊列,亦或者是把消息丟棄,這個得有交換機類型決定
  • 隊列:隊列是 RabbitMQ 內(nèi)部使用的一種數(shù)據(jù)結(jié)構(gòu),盡管消息流經(jīng)RabbitMQ 和應(yīng)用程序,但它們只能存儲在隊列中。隊列僅受主機的內(nèi)存和磁盤限制的約束,本質(zhì)上是一個大的消息緩沖區(qū)。許多生產(chǎn)者可以將消息發(fā)送到一個隊列,許多消費者可以嘗試從一個隊列接收數(shù)據(jù)。
  • 消費者:消費與接收具有相似的含義。消費者大多時候是一個等待接收消息的程序。請注意生產(chǎn)者,消費者和消息中間件很多時候并不在同一機器上。同一個應(yīng)用程序既可以是生產(chǎn)者又是可以是消費者

六、工作原理

rabbitmq是中間件,RabbitMQ,java-rabbitmq,rabbitmq,中間件,java

各個名詞的介紹:

  • Broker:接收和分發(fā)消息的應(yīng)用,RabbitMQ Server 就是 Message Broker
  • Connection:publisher/consumer 和 broker 之間的 TCP 連接
  • Channel:如果每一次訪問 RabbitMQ 都建立一個 Connection,在消息量大的時候建立 TCP Connection 的開銷將是巨大的,效率也較低。Channel 是在 connection 內(nèi)部建立的邏輯連接,如果應(yīng)用程序支持多線程,通常每個 thread 創(chuàng)建單獨的 channel 進行通訊,AMQP method 包含了 channel id 幫助客戶端和 message broker 識別 channel,所以 channel 之間是完全隔離的Channel 作為輕量級的Connection 極大減少了操作系統(tǒng)建立 TCP connection 的開銷
  • Exchange:message 到達 broker 的第一站,根據(jù)分發(fā)規(guī)則,匹配查詢表中的 routing key,分發(fā)消息到 queue 中去。常用的類型有:direct (point-to-point), topic (publish-subscribe) and fanout (multicast)
  • Queue:消息最終被送到這里等待 consumer 取走
  • Binding:exchange 和 queue 之間的虛擬連接,binding 中可以包含 routing key,Binding 信息被保存到 exchange 中的查詢表中,用于 message 的分發(fā)依據(jù)

感謝閱讀,一起進步,嘻嘻~文章來源地址http://www.zghlxwxcb.cn/news/detail-783092.html

到了這里,關(guān)于【中間件】MQ是什么?RabbitMQ又是什么?的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 消息中間件之八股面試回答篇:一、問題概覽+MQ的應(yīng)用場景+RabbitMQ如何保證消息不丟失(生產(chǎn)者確認機制、持久化、消費者確認機制)+回答模板

    消息中間件之八股面試回答篇:一、問題概覽+MQ的應(yīng)用場景+RabbitMQ如何保證消息不丟失(生產(chǎn)者確認機制、持久化、消費者確認機制)+回答模板

    目前主流的消息隊列技術(shù)(MQ技術(shù))分為RabbitMQ和Kafka,其中深藍色為只要是MQ,一般都會問到的問題。淺藍色是針對RabbitMQ的特性的問題。藍紫色為針對Kafka的特性的問題。 MQ主要提供的功能為:異步 解耦 削峰 。 展開來講就是 異步發(fā)送(驗證碼、短信、郵件…) MYSQL和Redi

    2024年01月24日
    瀏覽(56)
  • 消息中間件RabbitMQ

    消息中間件RabbitMQ

    1.1.1. 什么是MQ MQ(message queue) ,從字面意思上看,本質(zhì)是個隊列,F(xiàn)IFO 先入先出,只不過隊列中存放的內(nèi)容是message 而已,還是一種跨進程的通信機制,用于上下游傳遞消息。在互聯(lián)網(wǎng)架構(gòu)中,MQ 是一種非常常見的上下游“邏輯解耦+物理解耦”的消息通信服務(wù)。使用了 MQ 之后,

    2024年01月17日
    瀏覽(104)
  • RabbitMQ消息中間件

    RabbitMQ消息中間件 RabbitMQ簡介 windows下安裝RabbitMQ RabbitMQ基本概念 RabbitMQ簡單模式 RabbitMQ工作隊列模式 RabbitMQ發(fā)布訂閱模式 RabbitMQ路由模式 RabbitMQ主題模式 RabbitMQ RPC模式 RabbitMQ發(fā)布確認模式

    2024年02月10日
    瀏覽(104)
  • 消息中間件之RabbitMQ

    消息中間件之RabbitMQ

    1.基于AMQP協(xié)議Erlang語言開發(fā)的一款消息中間件,客戶端語言支持比較多, 比如Python,Java,Ruby,PHP,JS,Swift.運維簡單,靈活路由,但是性能不高, 可以滿足一般場景下的業(yè)務(wù)需要,三高場景下吞吐量不高,消息持久化沒有采取 零拷貝技術(shù),消息堆積時,性能會下降 2.消息吞吐量在

    2024年01月19日
    瀏覽(22)
  • 消息中間件RabbitMQ詳解

    消息中間件RabbitMQ詳解

    消息中間件利用高效可靠的消息傳遞機制進行平臺無關(guān)的數(shù)據(jù)交流,并基于數(shù)據(jù)通信來進行分布式系統(tǒng)的集成。通過提供消息傳遞和消息排隊模型,它可以在分布式環(huán)境下擴展進程間的通信。 消息中間件適用于需要可靠的數(shù)據(jù)傳送的分布式環(huán)境。采用消息中間件機制的系統(tǒng)中

    2024年02月16日
    瀏覽(104)
  • 中間件RabbitMQ消息隊列介紹

    中間件RabbitMQ消息隊列介紹

    1.1 什么是 MQ MQ ( message queue ),從字面意思上看,本質(zhì)是個隊列, FIFO 先入先出,只不過隊列中存放的內(nèi)容是 message 而已,還是一種跨進程的通信機制,用于上下游傳遞消息。在互聯(lián)網(wǎng)架構(gòu)中, MQ 是一種非常常 見的上下游 邏輯解耦+物理解耦 的消息通信服務(wù)。使用了 MQ 之

    2024年02月13日
    瀏覽(118)
  • RabbitMQ 消息中間件 消息隊列

    RabbitMQ 消息中間件 消息隊列

    RabbitMQ 1、RabbitMQ簡介 RabbiMQ是?Erang開發(fā)的,集群?常?便,因為Erlang天?就是??分布式語?,但其本身并 不?持負載均衡。支持高并發(fā),支持可擴展。支持AJAX,持久化,用于在分布式系統(tǒng)中存儲轉(zhuǎn)發(fā)消息,在易用性、擴展性、高可用性等方面表現(xiàn)不俗。 2、RabbitMQ 特點 可

    2024年02月03日
    瀏覽(93)
  • 【RabbitMQ教程】前言 —— 中間件介紹

    【RabbitMQ教程】前言 —— 中間件介紹

    ?????????????????????????????????????????????????????????????????? ?? 【 R a b b i t M Q 教程】前言——中間件介紹 color{#FF1493}{【RabbitMQ教程】前言 —— 中間件介紹} 【 R abbi tMQ 教程】前言 —— 中間件介紹 ?? ????????? ?? 仰望天空,妳

    2024年02月08日
    瀏覽(19)
  • 高性能消息中間件 RabbitMQ

    高性能消息中間件 RabbitMQ

    消息隊列 MQ全稱Message Queue(消息隊列),是在消息的傳輸過程中保存消息的容器。多用于系統(tǒng)之間的 異步通信 。 同步通信相當于兩個人當面對話,你一言我一語。必須及時回復(fù): 異步通信相當于通過第三方轉(zhuǎn)述對話,可能有消息的延遲,但不需要二人時刻保持聯(lián)系。 消息

    2024年02月11日
    瀏覽(32)
  • Springboot整合RabbitMQ消息中間件

    spring-boot-rabbitmq–消息中間件整合 前言:RabbitMQ的各種交換機說明 1、直連交換機 生產(chǎn)者發(fā)布消息時必須帶著routing-key,隊列綁定到交換機時必須指定binding-key ,且routing-key和binding-key必須完全相同,如此才能將消息路由到隊列中 直連交換機通常用來循環(huán)分發(fā)任務(wù)給多個workers,

    2024年02月11日
    瀏覽(33)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包