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

【后端面經(jīng)-架構(gòu)】RabbitMQ簡介

這篇具有很好參考價(jià)值的文章主要介紹了【后端面經(jīng)-架構(gòu)】RabbitMQ簡介。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

1. MQ介紹

MQ(Message Queue)用于在應(yīng)用程序之間相互通信,在消息中發(fā)送數(shù)據(jù)進(jìn)行通信,而不需要特意建立連接傳輸數(shù)據(jù)。
與之對(duì)應(yīng)的另一種通信方式是遠(yuǎn)程直接調(diào)用(RPC),需要先建立通信連接然后傳遞數(shù)據(jù)。

2. RabbitMQ

2.1 簡介

RabbitMQ是一個(gè)開源的消息隊(duì)列系統(tǒng),使用Erlang語言編寫的,基于AMQP協(xié)議的。
AMQP全程是Advanced Message Queuing Protocol,即高級(jí)消息隊(duì)列協(xié)議,是應(yīng)用層協(xié)議的一個(gè)開放標(biāo)準(zhǔn),為面向消息的中間件設(shè)計(jì)。具有面向信息、隊(duì)列、路由(包括點(diǎn)對(duì)點(diǎn)和發(fā)布/訂閱)、可靠性、安全等特征。

2.2 架構(gòu):組件解釋

RabbitMQ的架構(gòu)圖如下所示:
【后端面經(jīng)-架構(gòu)】RabbitMQ簡介,后端面經(jīng),架構(gòu),rabbitmq,分布式,后端,面經(jīng)
下面介紹一下其中的主要概念:

  • Producer:消息生產(chǎn)者,就是投遞消息的程序。
  • Connection:AMQP客戶端到broker的TCP連接。
  • Channal:在connection內(nèi)部建立的邏輯練級(jí),這樣一個(gè)connection能夠承載多個(gè)訪問;
  • Broker:消息隊(duì)列服務(wù)器實(shí)體。
  • Virtual Host:虛擬主機(jī),在多個(gè)用戶使用同一個(gè)RabbitMQ服務(wù)器的時(shí)候,用于進(jìn)行邏輯隔離,
  • Exchange:消息交換機(jī),它指定消息中的routing key按什么規(guī)則,路由到哪個(gè)隊(duì)列。主要的分配類型包括:
    • Direct:點(diǎn)對(duì)點(diǎn)(完全匹配)
    • Fanout:廣播
    • Topic:主題(規(guī)則匹配)
  • Queue:數(shù)據(jù)隊(duì)列,消息的載體,每個(gè)消息都會(huì)被投入到一個(gè)或多個(gè)隊(duì)列。
  • binding:是exchange和queue之間的虛擬連接,包含routing key。

2.3 特點(diǎn)

RaybbiMQ具有如下特點(diǎn):

  • 可靠性:持久化、生產(chǎn)確認(rèn)等傳輸機(jī)制保證傳輸?shù)目煽啃裕?/li>
  • 靈活路由:使用exchange機(jī)制靈活路由,下面會(huì)詳細(xì)介紹;
  • 消息集群:多服務(wù)器組成集群;
  • 隊(duì)列可用性:隊(duì)列在集群的機(jī)器上可以鏡像,部分節(jié)點(diǎn)出問題不影響整體可用性;
  • 支持多種協(xié)議:對(duì)于STOMP、MQTT等消息隊(duì)列協(xié)議的支持;
  • 跟蹤機(jī)制:對(duì)于異常消息提供消息跟蹤,方便確認(rèn)異常原因;
  • 用戶友好:多語言客戶端,管理界面易用,提供多種插件,也允許用戶自己實(shí)現(xiàn)插件;

2.4 優(yōu)缺點(diǎn)

  1. 優(yōu)點(diǎn)
    RabbitMQ具有解耦、異步、削峰的優(yōu)勢;
    • 解耦:
      • 對(duì)于數(shù)據(jù)傳入,一般的做法是直接把數(shù)據(jù)放在傳輸包中,從發(fā)送發(fā)傳遞給接收方,但是對(duì)于RaybbiMQ,發(fā)送方只需要把數(shù)據(jù)放在消息隊(duì)列中,接收方從消息隊(duì)列中獲取數(shù)據(jù)即可,這樣就實(shí)現(xiàn)了解耦;
      • 這樣的好處是發(fā)送發(fā)的隊(duì)列數(shù)據(jù)持久化,不會(huì)因?yàn)榻邮辗降膯栴}導(dǎo)致數(shù)據(jù)丟失,同時(shí)隊(duì)列中的持久化數(shù)據(jù)可以被多次復(fù)用。
    • 異步:
      • 正如解耦部分的解釋,讀寫操作是異步進(jìn)行的,不需要等待接收方的處理,這樣就提高了系統(tǒng)的吞吐量;
    • 削峰:
      • 當(dāng)在活動(dòng)日出現(xiàn)大規(guī)模交易的時(shí)候,如果按照傳統(tǒng)的收發(fā)操作,會(huì)造成服務(wù)器的承載負(fù)擔(dān),相信大家都遇到過服務(wù)器崩潰的情況,這對(duì)于用戶和公司來說都是很糟糕的情況;
      • 使用RabbitMQ的時(shí)候,先暫時(shí)將客戶端的請(qǐng)求數(shù)據(jù)放在隊(duì)列中,然后再慢慢處理,這樣就可以避免服務(wù)器的崩潰。
  2. 缺點(diǎn)
    • 系統(tǒng)復(fù)雜度:RabbitMQ的使用會(huì)增加系統(tǒng)的復(fù)雜度,需要考慮到消息的可靠性、重復(fù)消費(fèi)、消息丟失等問題;
    • 系統(tǒng)可用性:當(dāng)MQ崩潰的時(shí)候,整個(gè)系統(tǒng)就會(huì)陷入癱瘓,不使用RabbitMQ的時(shí)候,只要幾個(gè)服務(wù)節(jié)點(diǎn)能夠正常運(yùn)行,整個(gè)系統(tǒng)就可以正常運(yùn)行;
    • 一致性問題:當(dāng)多個(gè)消費(fèi)者同時(shí)對(duì)一個(gè)隊(duì)列進(jìn)行讀寫,就會(huì)產(chǎn)生一致性問題

面試模擬

Q: 為什么選擇使用RabbitMQ?
A:因?yàn)镽abbitMQ具有解耦、異步、削峰的優(yōu)點(diǎn),維護(hù)消息隊(duì)列,提高傳輸?shù)目煽啃院妥x寫異步。文章來源地址http://www.zghlxwxcb.cn/news/detail-570956.html

參考資料

  1. RabbitMQ 的應(yīng)用場景以及基本原理介紹
  2. rabbitMQ到底是個(gè)啥東西?
  3. 一文帶你了解RabbitMQ到底是個(gè)什么鬼!

到了這里,關(guān)于【后端面經(jīng)-架構(gòu)】RabbitMQ簡介的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • 微服務(wù)技術(shù)棧SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式(五):分布式搜索 ES-下

    微服務(wù)技術(shù)棧SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式(五):分布式搜索 ES-下

    聚合(aggregations)可以實(shí)現(xiàn)對(duì)文檔數(shù)據(jù)的統(tǒng)計(jì)、分析、運(yùn)算。聚合常見的有三類: 桶(Bucket)聚合:用來對(duì)文檔做分組 TermAggregation:按照文檔字段值分組 Date Histogram:按照日期階梯分組,例如一周為一組,或者一月為一組 度量(Metric)聚合:用以計(jì)算一些值,比如:最大值

    2024年03月26日
    瀏覽(37)
  • RabbitMQ——解決分布式事務(wù)問題,RabbitMQ的重要作用之一?。?!通過可靠生產(chǎn)和可靠消費(fèi)來完美解決!

    RabbitMQ——解決分布式事務(wù)問題,RabbitMQ的重要作用之一?。。⊥ㄟ^可靠生產(chǎn)和可靠消費(fèi)來完美解決!

    分布式事務(wù)是指涉及多個(gè)獨(dú)立的計(jì)算機(jī)系統(tǒng)(也稱為節(jié)點(diǎn)或參與者)之間的事務(wù)處理。在分布式系統(tǒng)中,每個(gè)節(jié)點(diǎn)可能各自擁有自己的數(shù)據(jù)存儲(chǔ)和事務(wù)管理機(jī)制。分布式事務(wù)的目標(biāo)是保證在跨多個(gè)節(jié)點(diǎn)執(zhí)行的一系列操作可以以一致和可靠的方式執(zhí)行和提交,即使在面對(duì)故障或

    2024年04月23日
    瀏覽(21)
  • 微服務(wù)學(xué)習(xí):SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式

    微服務(wù)學(xué)習(xí):SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式

    目錄 一、高級(jí)篇 二、面試篇 ==============實(shí)用篇============== day05-Elasticsearch01 1.初識(shí)elasticsearch 1.4.安裝es、kibana 1.4.1.部署單點(diǎn)es 1.4.2.部署kibana 1.4.3.安裝IK分詞器 1.4.4.總結(jié) 2.索引庫操作 2.1.mapping映射屬性 2.2.索引庫的CRUD 2.2.1.創(chuàng)建索引庫和映射 2.2.2.查詢索引庫 2.2.3.修改索引庫 2.

    2024年02月02日
    瀏覽(25)
  • 分布式消息隊(duì)列:Kafka vs RabbitMQ vs ActiveMQ

    在現(xiàn)代分布式系統(tǒng)中,消息隊(duì)列是一種常見的異步通信模式,它可以幫助系統(tǒng)處理高并發(fā)、高可用性以及容錯(cuò)等問題。在這篇文章中,我們將深入探討三種流行的分布式消息隊(duì)列:Apache Kafka、RabbitMQ和ActiveMQ。我們將討論它們的核心概念、算法原理、特點(diǎn)以及使用場景。 隨著

    2024年02月02日
    瀏覽(19)
  • (黑馬出品_07)SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式

    (黑馬出品_07)SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式

    [此文檔是在心向陽光的天域的博客加了一些有助于自己的知識(shí)體系,也歡迎大家關(guān)注這個(gè)大佬的博客](https://blog.csdn.net/sinat_38316216/category_12263516.html) [是這個(gè)視頻](https://www.bilibili.com/video/BV1LQ4y127n4/?p=5spm_id_from=pageDrivervd_source=9beb0a2f0cec6f01c2433a881b54152c) 聚合 可以讓我們極其方便

    2024年03月12日
    瀏覽(15)
  • 分布式搜索引擎(Elastic Search)+消息隊(duì)列(RabbitMQ)部署(商城4)

    分布式搜索引擎(Elastic Search)+消息隊(duì)列(RabbitMQ)部署(商城4)

    1、全文搜索 Elastic search可以用于實(shí)現(xiàn)全文搜索功能,例如商城中對(duì)商品搜索、搜索、分類搜索、訂單搜索、客戶搜索等。它支持復(fù)雜的查詢語句、中文分詞、近似搜索等功能,可以快速地搜索并返回匹配的結(jié)果。 2、日志分析 Elastic search可以用于實(shí)現(xiàn)實(shí)時(shí)日志分析,例

    2024年02月04日
    瀏覽(21)
  • 分布式 SpringCloudAlibaba、Feign與RabbitMQ實(shí)現(xiàn)MySQL到ES數(shù)據(jù)同步

    分布式 SpringCloudAlibaba、Feign與RabbitMQ實(shí)現(xiàn)MySQL到ES數(shù)據(jù)同步

    本文參考黑馬 分布式Elastic search Elasticsearch是一款非常強(qiáng)大的開源搜索引擎,具備非常多強(qiáng)大功能,可以幫助我們從海量數(shù)據(jù)中快速找到需要的內(nèi)容 同步調(diào)用 方案一:同步調(diào)用 基本步驟如下: hotel-demo對(duì)外提供接口,用來修改elasticsearch中的數(shù)據(jù) 酒店管理服務(wù)在完成數(shù)據(jù)庫操

    2024年04月11日
    瀏覽(25)
  • (黑馬出品_高級(jí)篇_04)SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式

    (黑馬出品_高級(jí)篇_04)SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式

    [此文檔是在心向陽光的天域的博客加了一些有助于自己的知識(shí)體系,也歡迎大家關(guān)注這個(gè)大佬的博客](https://blog.csdn.net/sinat_38316216/category_12263516.html) [是這個(gè)視頻](https://www.bilibili.com/video/BV1LQ4y127n4/?p=5spm_id_from=pageDrivervd_source=9beb0a2f0cec6f01c2433a881b54152c) 消息隊(duì)列在使用過程中,面

    2024年03月19日
    瀏覽(26)
  • 【103期】RabbitMQ 實(shí)現(xiàn)多系統(tǒng)間的分布式事務(wù),保證數(shù)據(jù)一致性

    【103期】RabbitMQ 實(shí)現(xiàn)多系統(tǒng)間的分布式事務(wù),保證數(shù)據(jù)一致性

    org.springframework.boot spring-boot-starter-amqp mysql mysql-connector-java runtime org.projectlombok lombok true org.springframework.boot spring-boot-starter-jdbc com.alibaba fastjson 1.2.17 3.2.1.2配置文件內(nèi)容: server: port:?8080 spring: datasource: driver-class-name:?com.mysql.cj.jdbc.Driver url:?jdbc:mysql://localhost:3306/test?useUnicode=tru

    2024年04月14日
    瀏覽(32)
  • SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式,系統(tǒng)詳解springcloud微服務(wù)技術(shù)棧

    SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式,系統(tǒng)詳解springcloud微服務(wù)技術(shù)棧

    我們發(fā)現(xiàn)在微服務(wù)中有一個(gè)令人頭疼的問題——部署,用Docker去解決這個(gè)部署難題 1、項(xiàng)目部署的問題 2、Docker 扔到一臺(tái)機(jī)器上,它們的依賴難道沒有干擾嗎?不會(huì),docker將打包好的程序放到一個(gè)隔離容器去運(yùn)行,使用沙箱機(jī)制,避免互相干擾,之間不可見,這樣就解決了混

    2023年04月24日
    瀏覽(18)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包