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

RabbitMQ --- 消息可靠性

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

消息隊(duì)列在使用過程中,面臨著很多實(shí)際問題需要思考:

rabbitmq消息可靠性,RabbitMQ,rabbitmq,分布式

??

?

一、消息可靠性

消息從發(fā)送,到消費(fèi)者接收,會(huì)經(jīng)理多個(gè)過程:

rabbitmq消息可靠性,RabbitMQ,rabbitmq,分布式

其中的每一步都可能導(dǎo)致消息丟失,常見的丟失原因包括:

  • 發(fā)送時(shí)丟失:

    • 生產(chǎn)者發(fā)送的消息未送達(dá)exchange

    • 消息到達(dá)exchange后未到達(dá)queue

  • MQ宕機(jī),queue將消息丟失

  • consumer接收到消息后未消費(fèi)就宕機(jī)

針對(duì)這些問題,RabbitMQ分別給出了解決方案:

  • 生產(chǎn)者確認(rèn)機(jī)制

  • mq持久化

  • 消費(fèi)者確認(rèn)機(jī)制

  • 失敗重試機(jī)制

?

二、生產(chǎn)者消息確認(rèn)

RabbitMQ提供了publisher confirm機(jī)制來避免消息發(fā)送到MQ過程中丟失。這種機(jī)制必須給每個(gè)消息指定一個(gè)唯一ID。消息發(fā)送到MQ以后,會(huì)返回一個(gè)結(jié)果給發(fā)送者,表示消息是否處理成功。

返回結(jié)果有兩種方式:

  • publisher-confirm,發(fā)送者確認(rèn)

    • 消息成功投遞到交換機(jī),返回ack

    • 消息未投遞到交換機(jī),返回nack

  • publisher-return,發(fā)送者回執(zhí)

    • 消息投遞到交換機(jī)了,但是沒有路由到隊(duì)列。返回ACK,及路由失敗原因。

?rabbitmq消息可靠性,RabbitMQ,rabbitmq,分布式

rabbitmq消息可靠性,RabbitMQ,rabbitmq,分布式?

?

2.1、修改配置

首先,修改publisher服務(wù)中的application.yml文件,添加下面的內(nèi)容:

spring:
  rabbitmq:
    publisher-confirm-type: correlated
    publisher-returns: true
    template:
      mandatory: true
   

說明:

  • publish-confirm-type:開啟publisher-confirm,這里支持兩種類型:

    • simple:同步等待confirm結(jié)果,直到超時(shí)

    • correlated:異步回調(diào),定義ConfirmCallback,MQ返回結(jié)果時(shí)會(huì)回調(diào)這個(gè)ConfirmCallback

  • publish-returns:開啟publish-return功能,同樣是基于callback機(jī)制,不過是定義ReturnCallback

  • template.mandatory:定義消息路由失敗時(shí)的策略。true,則調(diào)用ReturnCallback;false:則直接丟棄消息

?

2.2、定義Return回調(diào)

每個(gè)RabbitTemplate只能配置一個(gè)ReturnCallback,因此需要在項(xiàng)目加載時(shí)配置:

修改publis文章來源地址http://www.zghlxwxcb.cn/news/detail-622077.html

到了這里,關(guān)于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)文章

  • RabbitMQ保證消息的可靠性

    RabbitMQ保證消息的可靠性

    消息從發(fā)送,到消費(fèi)者接收,會(huì)經(jīng)理多個(gè)過程: 其中的每一步都可能導(dǎo)致消息丟失,常見的丟失原因包括: 發(fā)送時(shí)丟失: 生產(chǎn)者發(fā)送的消息未送達(dá)exchange 消息到達(dá)exchange后未到達(dá)queue MQ宕機(jī),queue將消息丟失 consumer接收到消息后未消費(fèi)就宕機(jī) 針對(duì)這些問題,RabbitMQ分別給出了

    2024年02月19日
    瀏覽(23)
  • rabbitmq消息可靠性之消息回調(diào)機(jī)制

    rabbitmq消息可靠性之消息回調(diào)機(jī)制

    rabbitmq消息可靠性之消息回調(diào)機(jī)制 rabbitmq在消息的發(fā)送與接收中,會(huì)經(jīng)過上面的流程,這些流程中每一步都有可能導(dǎo)致消息丟失,或者消費(fèi)失敗甚至直接是服務(wù)器宕機(jī)等,這是我們服務(wù)接受不了的,為了保證消息的可靠性,rabbitmq提供了以下幾種機(jī)制 生產(chǎn)者確認(rèn)機(jī)制 消息持久

    2024年02月08日
    瀏覽(37)
  • 【RabbitMQ】之消息的可靠性方案

    【RabbitMQ】之消息的可靠性方案

    一、數(shù)據(jù)丟失場景 二、數(shù)據(jù)可靠性方案 1、生產(chǎn)者丟失消息解決方案 2、MQ 隊(duì)列丟失消息解決方案 3、消費(fèi)者丟失消息解決方案 MQ 消息數(shù)據(jù)完整的鏈路為 :從 Producer 發(fā)送消息到 RabbitMQ 服務(wù)器中,再由 Broker 服務(wù)的 Exchange 根據(jù) Routing_Key 路由到指定的 Queue 隊(duì)列中,最后投送到消

    2024年02月14日
    瀏覽(24)
  • RabbitMQ之消息的可靠性傳遞

    提示:這里可以添加系列文章的所有文章的目錄,目錄需要自己手動(dòng)添加 RabbitMQ之消息的可靠性傳遞 提示:寫完文章后,目錄可以自動(dòng)生成,如何生成可參考右邊的幫助文檔 提示:這里可以添加本文要記錄的大概內(nèi)容: 在當(dāng)今的信息化時(shí)代,消息傳遞在企業(yè)級(jí)應(yīng)用和分布式

    2024年01月19日
    瀏覽(21)
  • RabbitMQ消息可靠性問題及解決

    RabbitMQ消息可靠性問題及解決

    說明:在RabbitMQ消息傳遞過程中,有以下問題: 消息沒發(fā)到交換機(jī) 消息沒發(fā)到隊(duì)列 MQ宕機(jī),消息在隊(duì)列中丟失 消息者接收到消息后,未能正常消費(fèi)(程序報(bào)錯(cuò)),此時(shí)消息已在隊(duì)列中移除 針對(duì)以上問題,提供以下解決方案: 消息確認(rèn):確認(rèn)消息是否發(fā)送到交換機(jī)、隊(duì)列;

    2024年02月16日
    瀏覽(21)
  • rabbitmq如何保證消息的可靠性

    RabbitMQ可以通過以下方式來保證消息的可靠性: 在發(fā)布消息時(shí),可以設(shè)置消息的delivery mode為2,這樣消息會(huì)被持久化存儲(chǔ)在磁盤上,即使RabbitMQ服務(wù)器重啟,消息也不會(huì)丟失。 可以創(chuàng)建持久化的隊(duì)列,這樣即使RabbitMQ服務(wù)器重啟,隊(duì)列也不會(huì)丟失。 在消費(fèi)者端,可以 設(shè)置手動(dòng)

    2024年01月23日
    瀏覽(26)
  • RabbitMQ 能保證消息可靠性嗎

    RabbitMQ 能保證消息可靠性嗎

    手把手教你,本地RabbitMQ服務(wù)搭建(windows) 消息隊(duì)列選型——為什么選擇RabbitMQ RabbitMQ靈活運(yùn)用,怎么理解五種消息模型 推或拉? RabbitMQ 消費(fèi)模式該如何選擇 死信是什么,如何運(yùn)用RabbitMQ的死信機(jī)制? 前面我們?cè)谧鯩Q組件選型時(shí),提到了rabbitMQ的消息可靠性,那么它到底可靠

    2024年02月16日
    瀏覽(29)
  • 如何保證 RabbitMQ 的消息可靠性?

    如何保證 RabbitMQ 的消息可靠性?

    項(xiàng)目開發(fā)中經(jīng)常會(huì)使用消息隊(duì)列來 完成異步處理、應(yīng)用解耦、流量控制等功能 。雖然消息隊(duì)列的出現(xiàn)解決了一些場景下的問題,但是同時(shí)也引出了一些問題,其中使用消息隊(duì)列時(shí)如何保證消息的可靠性就是一個(gè)常見的問題。 如果在項(xiàng)目中遇到需要保證消息一定被消費(fèi)的場景

    2024年02月07日
    瀏覽(27)
  • Rabbitmq怎么保證消息的可靠性?

    Rabbitmq怎么保證消息的可靠性?

    一、消費(fèi)端消息可靠性保證 : 消息確認(rèn)(Acknowledgements) : 消費(fèi)者在接收到消息后,默認(rèn)情況下RabbitMQ會(huì)自動(dòng)確認(rèn)消息(autoAck=true)。為保證消息可靠性,可以設(shè)置autoAck=false,使得消費(fèi)者在處理完消息后手動(dòng)發(fā)送確認(rèn)(basicAck)。如果消費(fèi)者在處理過程中發(fā)生異?;蛘呶赐瓿?/p>

    2024年04月14日
    瀏覽(24)
  • RabbitMQ消息可靠性(一)-- 生產(chǎn)者消息確認(rèn)

    RabbitMQ消息可靠性(一)-- 生產(chǎn)者消息確認(rèn)

    目錄 前言 一、消息確認(rèn)流程圖 二、生產(chǎn)者消息確認(rèn) 1、publisher-confirm(發(fā)送者確認(rèn)) 2、publisher-return(發(fā)送者回執(zhí)) 三、代碼實(shí)現(xiàn) 1、修改application.yml 配置 2、ConfirmCallback函數(shù)和ReturnCallback函數(shù) 在項(xiàng)目中,引入了RabbitMQ這一中間件,必然也需要在業(yè)務(wù)中增加對(duì)數(shù)據(jù)安全性的一

    2024年02月04日
    瀏覽(23)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包