<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12
      歿舞

      導航

       

      介紹


      rabbitmq性能(1.2w+)高于activemq(6000+),低于rocketmq(10w+),通訊協議默認為amqp,通過插件擴展可支持stomp/mqtt等協議。


      概念


      連接

      tcp連接


      信道

      tcp上封裝的虛擬連接,每個線程對應一個信道,即多路復用


      生產者


      消費者


      消息

      包括標簽(消息頭)和有效載荷(消息體)


      交換器exchange

      交換器直接與生產者交互,解耦生產者與隊列,隊列通過路由鍵綁定到交換器,本質為路由查詢表


      交換器類型

      • direct:1對1映射完全匹配交換器和隊列,默認交換器類型,默認以隊列名稱作為路由鍵
      • fanout:廣播模式,忽略路由鍵配置,生產者發送的消息將由交換器發到所有與該交換器綁定的隊列(綁定了其他交換器的隊列并不會收到消息)
      • topic:通配符模式,根據路由鍵中的通配符決定將消息發到符合條件的queue,通配符*表示匹配一個字符,#表示匹配一個或多個字符,.表示匹配分割符,如test.#,可以匹配test.開頭的所有路由鍵
      • headers:通過報文頭中的自定義的鍵值對來確定消息存到哪個queue,實操中因為功能與direct雷同且性能較差,幾乎不用

      隊列queue

      消息存儲位置,直接與消費者交互,一個隊列可以有多個消費者


      路由鍵

      即交換器與隊列的映射,隊列可綁定多個路由鍵


      虛擬主機vhost

      可以隔離mq所有資源,有自己的權限,類比于命名空間


      生產消費機制


      生產消息


      生產消息可以選擇模式,如下

      • 無模式:即生產者將消息發給mq后就算結束,不關心消息是否已經落到queue中。
      • 失敗確認:開啟故障檢測模式,設置mandatory,特點是只有當消息沒有落到queue中時會反饋給生產者,包括隊列不存在/路由沒有找到等情況。但是此種模式對于數據完整性來說有缺陷,無法保證反饋通知一定能通知到生產者(如此時生產者掛了),也就可能產生消息丟失的情況。
      • 事務:性能太差
      • 發送方確認模式:將信道設置為confirm模式,同事務模式沖突,可以與失敗確認組合使用,其中又可以分為三種
        • 同步確認:即發送完后同步等待消息確認
        • 批量確認:發送批量消息后同步等待確認,僅會對整批消息返回一條確認消息,失敗則意味著這批消息需要重發
        • 異步確認:即發送完后異步等待消息確認,通過先從信道中獲取消息發送序號存儲,等待消息落到queue中后,mq會通知生產者,此時可以將存儲的序號刪除,表示成功。

      備用交換器

      當主交換器無法路由到對應的queue時,將通過備用交換器進行路由,如設置了失敗確認模式,會在備用交換器也失敗的情況下才通知。


      消息過期

      主要有2種,

      • queue設置過期時間,x-message-ttl 參數,RabbitMQ保證死消息(在隊列中的時間超過設定的TTL時間)不會被消費者獲得,同時會盡快刪除死的消費者。消息不會在消費者的緩沖區中過期,也就是說,只要隊列在消息過期前將消息推送給消費者,消費者就一定能處理到這條消息。重新入隊(例如被取消確認或者信道關閉或拒絕并重新入隊)的消息的過期時間保留初始值,即不刷新過期時間。
      • 單條記錄設置過期時間,只對處于隊頭的消息判斷是否過期(即不會掃描隊列),所以,很可能隊列中已存在死消息,但是隊列并不知情。這會影響隊列統計數據的正確性,妨礙隊列及時釋放資源。

      消費消息


      拉取get

      即為輪詢模式,當沒有消息時返回空回復


      推送consume

      常見使用方式,即mq有消息時主動推送給消費者


      消息應答模式

      與生產者的確認模式類似,消費者需要告訴mq消息是否已正確消費,目的是確保消息的完整性。主要有有種模式

      • 自動確認:autoAck=true,即收到消息就自動確認
      • 手動確認:mq會等待消費者返回ack信號后才刪除消息,在未收到ack時,消息處于正在消費階段,其他消費者無法消費到,只有當此消費者與mq斷開連接后(如果連接沒斷,mq允許消費者一直處理該條消息),mq認為此消息沒有被消費,將重新投遞給消費者。對于某些無法處理的消息,可以在消費者進行拒絕處理,此時該消息可以進入死信隊列,等待后續處理。

      消息拒絕

      消息拒絕有兩種方式,

      • reject:可以使用requeue標識,=false則不重新發送(可進入死信隊列),=true則mq會重新投遞消息
      • Nack:同reject,可以一次拒絕多個消息

      死信交換器

      概念同普通交換器沒有區別,只不過特意標識為用來處理‘死了的’消息,設置參數為x-dead-letter-exchange。使用場景主要為2種,對異常消息進行后續處理(如人工介入等),可以實現延時處理消息的能力(如實現下單待付款到時間關閉)
      和備用交換器的區別

      • 備用交換器是主交換器無法路由消息,那么消息將被路由到這個新的備用交換器,而死信交換器則是接收過期或者被拒絕的消息。
      • 備用交換器是在聲明主交換器時發生聯系,而死信交換器則聲明隊列時發生聯系。
        場景分析:備用交換器一般是用于生產者生產消息時,確保消息可以盡量進入 RabbitMQ,而死信交換器主要是用于消費者消費消息的萬不一失性的場 景(比如消息過期,隊列滿了,消息拒絕且不重新投遞)

      觸發時機

      • 消 息被拒絕且requeue=false
      • 消息過期(默認queue是不會過期,可以設置隊列過期或單條消息過期)
      • 隊列達到最大值(默認無限長度)

      隊列高可用


      隊列屬性配置


      參考

      https://www.liangzl.com/get-article-detail-6832.html
      https://blog.csdn.net/weixin_39776991/article/details/111618735

      posted on 2021-07-02 16:29  歿舞  閱讀(74)  評論(0)    收藏  舉報
       
      主站蜘蛛池模板: 精品国产免费人成在线观看| 国产精品人成在线播放蜜臀| 国产精品 欧美激情 在线播放| 桃园市| 色综合久久中文综合久久激情| 日韩精品人妻av一区二区三区| 亚洲精品日本久久久中文字幕| 欧美不卡无线在线一二三区观| 亚洲中文字幕av天堂| 亚洲a毛片| 亚洲av永久无码精品水牛影视 | 九九热爱视频精品视频| 综1合AV在线播放| 国产成人午夜福利精品| 9lporm自拍视频区| 日本高清日本在线免费| 亚洲人妻系列中文字幕| 日韩精品三区二区三区| 国产精品久久久久久无毒不卡 | 久久综合婷婷成人网站| 亚洲男人AV天堂午夜在| 永久免费无码av网站在线观看| 国产精品 无码专区| 99在线 | 亚洲| 亚洲欧洲一区二区免费| 欧美激情一区二区| 日韩日韩日韩日韩日韩熟女| 国产一区国产精品自拍| 老色鬼永久精品网站| 人妻丝袜无码专区视频网站| 国产精品成人国产乱| 性xxxx搡xxxxx搡欧美| 亚洲色成人一区二区三区人人澡人人妻人人爽人人蜜桃麻豆 | 久久涩综合一区二区三区| 亚洲av日韩在线资源| 安西县| 国产精品人成视频免费播放| 波多野结衣在线精品视频| 亚洲欧洲日产国码久在线| 精品亚洲国产成人av在线| 麻豆国产成人AV在线播放|