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

RabbitMQ工作流程詳解

這篇具有很好參考價值的文章主要介紹了RabbitMQ工作流程詳解。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報違法"按鈕提交疑問。

1 生產(chǎn)者發(fā)送消息的流程

(1)生產(chǎn)者連接RabbitMQ,建立TCP連接(Connection),開啟信道(Channel)

(2)生產(chǎn)者聲明一個Exchange (交換器),并設(shè)置相關(guān)屬性,比如交換器類型、是否持久化等

(3)生產(chǎn)者聲明一個隊列井設(shè)置相關(guān)屬性,比如是否排他、是否持久化、是否自動刪除等

(4)生產(chǎn)者通過bindingKey (綁定Key) 將交換器和隊列綁定(binding)起來

(5)生產(chǎn)者發(fā)送消息至RabbitMQ Broker,其中包含routingKey (路由鍵)、交換器等信息

(6)相應(yīng)的交換器根據(jù)接收到的routingkey查找相匹配的隊列。

(7)如果找到,則將從生產(chǎn)者發(fā)送過來的消息存入相應(yīng)的隊列中。

(8)如果沒有找到,則根據(jù)生產(chǎn)者配置的屬性選擇丟棄還是回退給生產(chǎn)者

(9)關(guān)閉信道。

(10)關(guān)閉連接。

2 消費(fèi)者接收消息的過程

(1)消費(fèi)者連接到RabbitMQ Broker,建立一個連接(Connection),開啟一個信道(Channel)。

(2)消費(fèi)者向RabbitMQ Broker請求消費(fèi)相應(yīng)隊列中的消息,可能會設(shè)置相應(yīng)的回調(diào)函數(shù),以及做一些準(zhǔn)備工作

(3)等待RabbitMQ Broker回應(yīng)并投遞相應(yīng)隊列中的消息,消費(fèi)者接收消息。

(4)消費(fèi)者確認(rèn)(ack)接收到的消息。

(5)?RabbitMQ從隊列中刪除相應(yīng)己經(jīng)被確認(rèn)的消息。

(6)關(guān)閉信道。

(7)關(guān)閉連接。

3 Connection和Channel關(guān)系

生產(chǎn)者和消費(fèi)者,需要與RabbitMQ Broker建立TCP連接,也就是Connection。一旦TCP連接建立起來,客戶端緊接著創(chuàng)建一個AMQP 信道(Channel),每個信道都會被指派一個唯一的ID。信道是建立在Connection之上的虛擬連接,RabbitMQ處理的每條AMQP指令都是通過信道完成的。

RabbitMQ工作流程詳解,中間件,rabbitmq,分布式

為什么不直接使用TCP連接,而是使用信道?

RabbitMQ采用類似NIO的做法,復(fù)用TCP連接,減少性能開銷,便于管理。

當(dāng)每個信道的流量不是很大時,復(fù)用單一的Connection可以在產(chǎn)生性能瓶頸的情況下有效地節(jié)省TCP連接資源。

當(dāng)信道本身的流量很大時,一個Connection就會產(chǎn)生性能瓶頸,流量被限制。需要建立多個Connection,分?jǐn)傂诺?。具體的調(diào)優(yōu)看業(yè)務(wù)需要。

信道在AMQP中是一個很重要的概念,大多數(shù)操作都是在信道這個層面進(jìn)行的。

channe1.exchangeDeclare
channe1.queueDeclare
channe1.basicPublish
channe1.basicConsume
//

RabbitMQ相關(guān)的API與AMQP緊密相連,比如channel.basicPublish對應(yīng)AMQP的Basic.Publish命令。文章來源地址http://www.zghlxwxcb.cn/news/detail-644487.html

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

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

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

相關(guān)文章

  • 【消息中間件】詳解三大MQ:RabbitMQ、RocketMQ、Kafka

    【消息中間件】詳解三大MQ:RabbitMQ、RocketMQ、Kafka

    作者簡介 前言 博主之前寫過一個完整的MQ系列,包含RabbitMQ、RocketMQ、Kafka,從安裝使用到底層機(jī)制、原理。專欄地址: https://blog.csdn.net/joker_zjn/category_12142400.html?spm=1001.2014.3001.5482 本文是該系列的清單綜述,會拉通來聊一下三大MQ的特點(diǎn)和各種適合的場景。 目錄 1.概述 1.1.M

    2024年02月09日
    瀏覽(53)
  • 消息中間件RabbitMQ

    消息中間件RabbitMQ

    1.1.1. 什么是MQ MQ(message queue) ,從字面意思上看,本質(zhì)是個隊列,F(xiàn)IFO 先入先出,只不過隊列中存放的內(nèi)容是message 而已,還是一種跨進(jìn)程的通信機(jī)制,用于上下游傳遞消息。在互聯(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ā)布確認(rèn)模式

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

    消息中間件之RabbitMQ

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

    2024年01月19日
    瀏覽(22)
  • 中間件RabbitMQ消息隊列介紹

    中間件RabbitMQ消息隊列介紹

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

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

    RabbitMQ 消息中間件 消息隊列

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

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

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

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

    2024年02月08日
    瀏覽(19)
  • Django中間件的源碼解析流程(上)——中間件載入的前置

    Django中間件的源碼解析流程(上)——中間件載入的前置

    目錄 1. ?前言? 2. 請求的入口 3. 中間件加載的入口 4. 源碼中的閉包實現(xiàn) 5. 最后 哈嘍,大家好,我是 小K ,今天咋們分享的內(nèi)容是:在學(xué)會Django中間件之后, 我們繼續(xù)深入底層源碼。 在執(zhí)行中間件時請求到來總是從前往后逐一匹配,但當(dāng)響應(yīng)返回時,執(zhí)行的中間件順序往往

    2024年04月22日
    瀏覽(22)
  • 高性能消息中間件 RabbitMQ

    高性能消息中間件 RabbitMQ

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

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

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

    2024年02月11日
    瀏覽(33)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包