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

RabbitMQ-業(yè)務(wù)的冪等性

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

一、冪等性處理方式

1、使用唯一id

生產(chǎn)者和消費(fèi)者都需要添加配置類:

    @Bean
    public MessageConverter jsonMessageConverter() {
        Jackson2JsonMessageConverter jackson2JsonMessageConverter = new Jackson2JsonMessageConverter();
        jackson2JsonMessageConverter.setCreateMessageIds(true);
        return jackson2JsonMessageConverter;
    }

消費(fèi)者拿到id之后,保存到數(shù)據(jù)庫,后續(xù)消費(fèi)時(shí),需要查數(shù)據(jù)庫進(jìn)行比較,因此這種方案的缺點(diǎn)就是有業(yè)務(wù)的入侵,對性有一定的影響。

2、業(yè)務(wù)的冪等性

(1)查詢和刪除操作本身就是冪等性操作。

(2)可以使用分布式鎖,對單據(jù)id鎖定,防止多次提交,但是需要設(shè)置過去時(shí)間,只是避免短期重復(fù)提交,后續(xù)單據(jù)可能退回。

3、案例優(yōu)化

案例:訂單支付完成之后需要修改訂單狀態(tài),此時(shí)需要通過支付服務(wù)調(diào)用訂單服務(wù)修改訂單狀態(tài)。

解決:可以在訂單服務(wù)中增加一個(gè)對訂單狀態(tài)的判斷,如果訂單狀態(tài)不為未支付,則不能改動訂單的狀態(tài),大概邏輯如下:

  • 查詢訂單信息
  • 判斷訂單狀態(tài)
  • 修改訂單狀態(tài)

這個(gè)案例比較特殊,是典型的比較交換邏輯,屬于樂觀鎖,因此可以優(yōu)化成為一個(gè)sql:

update order set oderStatus = 2 where id = ? and oderStatus = 1

當(dāng)狀態(tài)為1時(shí)才去修改為2,完美~文章來源地址http://www.zghlxwxcb.cn/news/detail-810712.html

到了這里,關(guān)于RabbitMQ-業(yè)務(wù)的冪等性的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(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ī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

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

相關(guān)文章

  • RabbitMQ如何保證冪等性

    RabbitMQ如何保證冪等性

    一、簡介 冪等性是分布式中比較重要的一個(gè)概念,是指在多作業(yè)操作時(shí)候避免造成重復(fù)影響,其實(shí)就是保證同一個(gè)消息不被消費(fèi)者重復(fù)消費(fèi)兩次,但是可能存在網(wǎng)絡(luò)波動等問題,生產(chǎn)者無法接受消費(fèi)者發(fā)送的ack信息,因此這條消息將會被重復(fù)發(fā)送給其他消費(fèi)者進(jìn)行消費(fèi),實(shí)際

    2024年02月15日
    瀏覽(22)
  • 【RabbitMQ教程】第八章 —— RabbitMQ - 冪等性、優(yōu)先級、惰性

    【RabbitMQ教程】第八章 —— RabbitMQ - 冪等性、優(yōu)先級、惰性

    ?????????????????????????????????????????????????????????????????? ?? 【 R a b b i t M Q 教程】第八章—— R a b b i t M Q ? 冪等性、優(yōu)先級、惰性 color{#FF1493}{【RabbitMQ教程】第八章 —— RabbitMQ - 冪等性、優(yōu)先級、惰性} 【 R abbi tMQ 教程】第八章

    2024年02月09日
    瀏覽(18)
  • 【分布式】: 冪等性和實(shí)現(xiàn)方式

    【分布式】: 冪等性和實(shí)現(xiàn)方式

    冪等(idempotent、idempotence)是一個(gè)數(shù)學(xué)與計(jì)算機(jī)學(xué)概念, 常見于抽象代數(shù)中。在編程中一個(gè)冪等操作的特點(diǎn)是其任意多次執(zhí)行所產(chǎn)生的影響均與一次執(zhí)行的影響相同。冪等函數(shù),或冪等方法,是指可以使用相同參數(shù)重復(fù)執(zhí)行,并能獲得相同結(jié)果的函數(shù)。這些函數(shù)不會影響系統(tǒng)

    2024年02月08日
    瀏覽(29)
  • 分布式接口冪等性設(shè)計(jì)實(shí)現(xiàn)

    分布式接口冪等性設(shè)計(jì)實(shí)現(xiàn)

    面對分布式架構(gòu)和微服務(wù)復(fù)雜的系統(tǒng)架構(gòu)和網(wǎng)絡(luò)超時(shí)服務(wù)器異常等帶來的系統(tǒng)穩(wěn)定性問題,分布式接口的冪等性設(shè)計(jì)顯得尤為重要。本文簡要介紹了幾種分布式接口冪等性設(shè)計(jì)實(shí)現(xiàn),包括Token去重機(jī)制、樂觀鎖機(jī)制、數(shù)據(jù)庫主鍵和狀態(tài)機(jī)實(shí)現(xiàn)等,以加深理解。 1、分布式接口冪

    2024年02月05日
    瀏覽(47)
  • rabbitmq+springboot實(shí)現(xiàn)冪等性操作

    文章目錄 1.場景描述 1.1 場景1 1.2 場景2 2.原理 3.實(shí)戰(zhàn)開發(fā) 3.1 建表 3.2 集成mybatis-plus 3.3 集成RabbitMq 3.3.1 安裝mq 3.3.2 springBoot集成mq 3.4 具體實(shí)現(xiàn) 3.4.1 mq配置類 3.4.2 生產(chǎn)者 3.4.3 消費(fèi)者 消息中間件是分布式系統(tǒng)常用的組件,無論是異步化、解耦、削峰等都有廣泛的應(yīng)用價(jià)值。我們

    2024年02月10日
    瀏覽(19)
  • 如何保證接口的冪等性?

    如何保證接口的冪等性?

    作者:小牛呼嚕嚕 | https://xiaoniuhululu.com 計(jì)算機(jī)內(nèi)功、源碼解析、科技故事、項(xiàng)目實(shí)戰(zhàn)、面試八股等更多硬核文章,首發(fā)于公眾號「小牛呼嚕?!?目錄 什么是冪等性? 為什么需要保證冪等性? 接口冪等設(shè)計(jì)和防止重復(fù)提交可以等同嗎? 常用保證冪等性的措施 先select再inse

    2024年02月08日
    瀏覽(19)
  • Springboot 定時(shí)任務(wù),分布式下冪等性如何解決

    Springboot 定時(shí)任務(wù),分布式下冪等性如何解決

    在分布式環(huán)境下,定時(shí)任務(wù)的冪等性問題需要考慮多個(gè)節(jié)點(diǎn)之間的數(shù)據(jù)一致性和事務(wù)處理。 一種解決方法是使用分布式鎖來保證同一時(shí)間只有一個(gè)節(jié)點(diǎn)能夠執(zhí)行該任務(wù)。具體實(shí)現(xiàn)可以使用Redis或Zookeeper等分布式協(xié)調(diào)工具提供的分布式鎖功能。 另一種解決方法是使用消息隊(duì)列來

    2024年02月11日
    瀏覽(22)
  • 談?wù)?Kafka 的冪等性 Producer

    使用消息隊(duì)列,我們肯定希望不丟消息,也就是消息隊(duì)列組件,需要保證消息的可靠交付。消息交付的可靠性保障,有以下三種承諾: 最多一次(at most once):消息可能會丟失,但絕不會被重復(fù)發(fā)送。 至少一次(at least once):消息不會丟失,但有可能被重復(fù)發(fā)送。 精確一次

    2024年02月14日
    瀏覽(16)
  • redis如何保證接口的冪等性

    redis如何保證接口的冪等性

    背景 如何防止接口中同樣的數(shù)據(jù)提交,以及如何保證消息不被重復(fù)消費(fèi),這些都是 shigen 在學(xué)習(xí)的過程中遇到的問題。今天,趁著在學(xué)習(xí) redis 的間隙,我寫了一篇文章進(jìn)行簡單的實(shí)現(xiàn)。 注意:僅使用于單機(jī)的場景,對于分布式、高并發(fā)場景,還是建議使用分布式鎖。 首先我

    2024年02月09日
    瀏覽(27)
  • RabbitMq(七) -- 常見問題:冪等性問題(消息重復(fù)消費(fèi))、消息丟失

    RabbitMq(七) -- 常見問題:冪等性問題(消息重復(fù)消費(fèi))、消息丟失

    用戶對于同一操作發(fā)起的一次請求或者多次請求的結(jié)果是一致的,不會因?yàn)槎啻吸c(diǎn)擊而產(chǎn)生了副作用。 舉個(gè)最簡單的例子,那就是支付,用戶購買商品后支付,支付扣款成功,但是返回結(jié)果的時(shí)候網(wǎng)絡(luò)異常, 此時(shí)錢已經(jīng)扣了,用戶再次點(diǎn)擊按鈕,此時(shí)會進(jìn)行第二次扣款,返

    2024年02月05日
    瀏覽(20)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包