精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

使用 RocketMQ 延遲隊列實現訂單超時自動關閉

開發 前端
隨著 RocketMQ 5.0 推出精準延時消息(任意時間精度),此方案將更加強大。建議在關鍵業務中配合分布式事務和多級監控,構建高可靠的訂單超時體系。?

在電商系統中,訂單超時未支付自動關閉是一個經典場景。傳統輪詢數據庫的方案存在性能瓶頸,而 RocketMQ 的延遲隊列提供了高并發、高可靠的解決方案。本文將深入探討如何基于 RocketMQ 實現這一功能,涵蓋技術原理、詳細實現及生產級優化。

一、業務場景與技術選型

業務需求:

? 用戶下單后,若30分鐘內未支付,系統自動關閉訂單

? 需支持高并發下單(萬級/分鐘)

? 保證關閉操作的可靠性與時效性

方案對比:

1. 數據庫輪詢

SELECT * FROM orders WHERE status='unpaid' AND create_time < NOW()-30min;

? 缺點:高頻查詢壓力大,時效性差,水平擴展困難

2. Redis 過期監聽

redisTemplate.opsForValue().set(orderId, "", 30, TimeUnit.MINUTES);

? 缺點:消息丟失風險高,無持久化保證

3. RocketMQ 延遲隊列

? 優勢:億級消息堆積能力,持久化存儲,精確時間控制

二、RocketMQ 延遲消息原理

核心機制:

Delay MessageTimerProducerCommitLogSchedule TopicDelay Queue 1-18Consumer

1. 延遲等級映射
RocketMQ 預設18個延遲等級(1到18),對應不同延遲時間:

等級

1

2

3

...

18

時間

1s

5s

10s

...

2h

2. 存儲流程:

? 延遲消息寫入 CommitLog

? ScheduleService 將消息按延遲等級存入對應 SCHEDULE_TOPIC_XXXX

? 定時任務掃描到期消息,投遞到真實 Topic

3. 投遞精度:

? 默認精度為1秒級

? 通過 messageDelayLevel 參數自定義等級

三、完整實現方案

1. 消息生產端(訂單服務)

// 訂單創建時發送延遲消息
public class OrderProducer {
    private final DefaultMQProducer producer;

    public void sendDelayMessage(String orderId) throws Exception {
        Message msg = new Message("ORDER_DELAY_TOPIC", 
                                 "CLOSE_ORDER_TAG",
                                 orderId.getBytes());
        
        // 設置延遲等級4(對應30分鐘)
        msg.setDelayTimeLevel(4);  
        
        SendResult result = producer.send(msg);
        if (result.getSendStatus() != SendStatus.SEND_OK) {
            throw new RuntimeException("消息發送失敗");
        }
    }
}

關鍵配置:在 broker.conf 中定義延遲等級

messageDelayLevel=1s 5s 10s 30s 1m 2m 3m 4m 5m 6m 7m 8m 9m 10m 20m 30m 1h 2h

2. 消息消費端(訂單作業服務)

public class OrderCloseConsumer {
    public static void main(String[] args) throws Exception {
        DefaultMQPushConsumer consumer = new DefaultMQPushConsumer("ORDER_CLOSE_GROUP");
        consumer.subscribe("ORDER_DELAY_TOPIC", "CLOSE_ORDER_TAG");
        
        consumer.registerMessageListener((MessageListenerConcurrently) (msgs, context) -> {
            for (MessageExt msg : msgs) {
                String orderId = new String(msg.getBody());
                closeExpiredOrder(orderId); // 關閉訂單業務邏輯
            }
            return ConsumeConcurrentlyStatus.CONSUME_SUCCESS;
        });
        consumer.start();
    }
    
    // 冪等性訂單關閉
    private void closeExpiredOrder(String orderId) {
        // 1. 查詢訂單狀態(防止重復關閉)
        // 2. 執行關閉操作(更新DB狀態+記錄日志)
        // 3. 庫存釋放等關聯操作
    }
}

3. 訂單關閉核心邏輯

public class OrderService {
    @Transactional
    public void closeOrder(String orderId) {
        Order order = orderDao.selectByIdForUpdate(orderId); // 悲觀鎖
        
        if (order.getStatus() != OrderStatus.UNPAID) {
            return; // 冪等處理
        }
        
        order.setStatus(OrderStatus.CLOSED);
        orderDao.update(order);
        
        // 釋放庫存
        inventoryService.releaseStock(order.getItems()); 
        
        // 記錄操作日志
        logService.record(orderId, "AUTO_CLOSE");
    }
}

四、生產環境關鍵優化點

1. 消息丟失防護

? 生產者重試機制:

producer.setRetryTimesWhenSendFailed(3);
producer.setRetryAnotherBrokerWhenNotStoreOK(true);

? 消費者手動ACK:

consumer.registerMessageListener(new MessageListenerConcurrently() {
    @Override
    public ConsumeConcurrentlyStatus consumeMessage(List<MessageExt> msgs, ConsumeConcurrentlyContext context) {
        try {
            // 業務處理
            return ConsumeConcurrentlyStatus.CONSUME_SUCCESS;
        } catch (Exception e) {
            return ConsumeConcurrentlyStatus.RECONSUME_LATER; // 重試
        }
    }
});

2. 延遲等級適配

若預設等級不滿足需求,可通過 時間戳+定時掃描 實現任意延遲:

msg.putUserProperty("EXPIRE_TIMESTAMP", "1700000000000"); // 精確到期時間

消費者額外啟動線程掃描未關閉訂單,補漏處理。

3. 消費并發控制

// 設置單隊列并行消費(避免亂序)
consumer.setConsumeThreadMin(20);
consumer.setConsumeThreadMax(64);
consumer.setPullBatchSize(32); // 每次拉取消息數

4. 監控與告警

? RocketMQ 控制臺:監控消息堆積

sh mqadmin consumerProgress -n localhost:9876 -g ORDER_CLOSE_GROUP

? 業務埋點:

Metrics.counter("order.close.success").increment();
Metrics.counter("order.close.failure").increment();

五、方案對比測試

方案

10萬訂單處理耗時

CPU占用

消息丟失率

數據庫輪詢

152s

85%

0%

Redis過期監聽

46s

32%

0.7%

RocketMQ

28s

18%

0%

測試環境:4C8G × 3節點,RocketMQ 5.0

六、經典問題及解決方案

問題1:延遲消息未觸發

? 排查:

1. 檢查 DelayTimeLevel 設置值是否合法(1-18)

2. 查看 Broker 日志 store.log 確認消息存儲

3. 使用命令查看消費進度:

sh mqadmin queryMsgById -m 0A00000100002A9F000000000000035F

問題2:訂單重復關閉

? 解決:

UPDATE orders SET status='CLOSED' 
WHERE id=#{orderId} AND status='UNPAID' -- 冪等操作

問題3:分布式事務一致性

? 方案:
采用 本地事務表+消息表 保證可靠性:

1. 創建訂單時,在DB事務中寫入本地消息表

2. 后臺任務掃描本地消息,發送MQ

3. 消費成功后刪除本地記錄

結語

通過 RocketMQ 延遲隊列實現訂單超時關閉,相比傳統方案具備顯著優勢:

1. 性能提升:吞吐量提升5倍以上

2. 可靠性增強:消息持久化+重試機制

3. 擴展靈活:水平擴容無需改造業務

完整代碼示例見 GitHub:https://github.com/example/rocketmq-order-demo

隨著 RocketMQ 5.0 推出精準延時消息(任意時間精度),此方案將更加強大。建議在關鍵業務中配合分布式事務和多級監控,構建高可靠的訂單超時體系。

責任編輯:武曉燕 來源: 程序員秋天
相關推薦

2024-11-05 16:58:21

RabbitMQ訂單超時取消延遲隊列

2024-10-16 09:29:30

RabbitMQ延遲隊列

2021-09-07 08:14:26

訂單超時未支付

2020-10-21 09:25:01

互聯網訂單自動關閉

2024-02-26 08:50:37

訂單自動取消消息

2023-09-05 15:48:14

RabbitMQ延遲隊列

2021-04-20 08:00:31

Redisson關閉訂單支付系統

2024-07-16 18:05:19

延遲隊列MQRabbitMQ

2024-04-19 00:47:07

RabbitMQ消息機制

2024-05-08 14:49:22

Redis延遲隊列業務

2024-10-31 09:04:20

Spring高并發

2023-10-10 13:39:53

Spring隊列優化

2023-01-30 08:12:53

訂單超時自動取消延長訂單

2022-03-02 15:14:09

訂單計時器持久化

2024-01-26 13:16:00

RabbitMQ延遲隊列docker

2024-04-28 08:52:33

RabbitMQ延遲隊列延遲插件

2022-12-01 08:25:03

訂單超時定時任務

2022-03-06 20:02:21

監聽視頻播放

2022-08-26 12:13:08

APIjavascript視頻

2020-11-13 16:40:05

RocketMQ延遲消息架構
點贊
收藏

51CTO技術棧公眾號

国产精品久久久久久久久毛片| 久久精品国产亚洲av麻豆| 麻豆视频网站在线观看| 国产精品一二三四| 91av在线播放视频| 亚洲图片另类小说| 精品成人18| 日韩欧美在线观看| 亚洲AV无码成人精品一区| 蜜桃视频污在线观看| 日本vs亚洲vs韩国一区三区二区| 久久综合免费视频| 9.1成人看片免费版| 欧美经典一区| 欧美在线观看禁18| 成人午夜精品久久久久久久蜜臀| 成人亚洲综合天堂| www.欧美色图| 国产精品久久久久久久7电影| 天天操天天操天天操天天操天天操| 女同久久另类99精品国产| 666欧美在线视频| www日韩视频| av免费在线视| 综合分类小说区另类春色亚洲小说欧美| 国产精品欧美久久久| 国产精品第56页| 成人羞羞动漫| 亚洲国产精彩中文乱码av| 九九热免费精品视频| 污片视频在线免费观看| 久久精品水蜜桃av综合天堂| 51成人做爰www免费看网站| 国产微拍精品一区| 性欧美欧美巨大69| 亚洲精品自拍视频| 亚洲天堂网站在线| 欧美男女交配| 午夜久久久影院| 91制片厂免费观看| 久久电影视频| www.亚洲免费av| 亚洲jizzjizz日本少妇| 91精品国产高清一区二区三密臀| 一本精品一区二区三区| 亚洲午夜性刺激影院| 久久久男人的天堂| 欧美成人免费全部网站| 91黄色免费看| 久久久久久久久久久视频| 色呦呦在线视频| 国产精品成人网| 日韩免费av一区二区三区| 天堂中文在线资源| 国产91精品欧美| 国产在线精品播放| 成人免费一级片| 亚洲欧美高清| 午夜精品www| 久草成人在线视频| 欧美阿v一级看视频| 日韩中文字幕精品| a毛片毛片av永久免费| 激情亚洲另类图片区小说区| 日韩女优制服丝袜电影| 日本在线播放一区二区| www.国产精品| 欧美图区在线视频| 牛夜精品久久久久久久| 成人免费影院| 一本大道久久a久久精二百 | av在线播放网站| 久久久精品天堂| 欧美精品尤物在线| 日本高清中文字幕二区在线| 99热精品国产| 黄色一区三区| 手机看片福利在线观看| 国产二区国产一区在线观看| 91久久综合亚洲鲁鲁五月天| 中文字幕免费高清在线观看| 九一九一国产精品| 91久久在线视频| 亚洲av无码一区二区三区性色| 国产精品综合二区| 99re在线视频观看| 日批视频免费播放| 91麻豆免费看| 日韩av电影免费在线观看| 国产大片在线免费观看| 欧美激情一区二区三区蜜桃视频 | 欧洲美女日日| 日韩在线视频观看| 黄色片在线观看网站| 午夜精品电影| 91精品国产九九九久久久亚洲| 九九九在线视频| 免费在线观看成人av| 国产精品美女久久久久久免费| 中文字幕人妻一区二区在线视频| 久久99热狠狠色一区二区| av成人在线电影| 天天摸夜夜添狠狠添婷婷| 中文字幕乱码亚洲精品一区| 中文字幕一区二区三区四区五区六区| 国产美女av在线| 精品久久久久久久中文字幕| 五月婷婷深爱五月| 国产精品国产亚洲精品| 亚洲国产精品久久久久秋霞蜜臀| 久久精品国产亚洲av久| 国产韩国精品一区二区三区| 久久久久久国产精品| 国产成人在线免费视频 | 2021国产精品视频| 中文字幕在线日亚洲9| 国产成人在线观看| 欧美一区二区三区精美影视| 久久久久久国产精品免费无遮挡| 亚洲一区二区四区蜜桃| 男女啪啪网站视频| 99这里只有精品视频| 一区二区三区动漫| 久久久久久久久精| 欧美aⅴ一区二区三区视频| 俄罗斯精品一区二区| 免费在线国产| 亚洲黄网站在线观看| 日韩精品久久一区二区| 亚洲欧美小说色综合小说一区| 91精品国产91热久久久做人人| 特大黑人巨人吊xxxx| 亚洲精品一区二区在线看| 欧美亚洲一区在线| 成人黄色在线观看视频| 国产精品久久午夜夜伦鲁鲁| 男人插女人视频在线观看| 欧美高清你懂的| 精品亚洲永久免费精品| 丰满少妇被猛烈进入一区二区| 免费亚洲一区| 147欧美人体大胆444| 成人综合影院| 欧美性感美女h网站在线观看免费| 在线播放黄色av| 成人羞羞在线观看网站| 欧美野外猛男的大粗鳮| 女人18毛片水真多18精品| 亚洲男人电影天堂| 日韩一级免费片| 成人嫩草影院| 国产99久久精品一区二区永久免费 | 久久黄色一级视频| 99视频精品全国免费| 国产精品第8页| 日韩黄色影片| 欧美日韩国产精品一区二区三区四区| 亚洲熟妇一区二区| 亚洲精品在线观看91| 成人在线视频福利| 97视频精彩视频在线观看| 色综合天天综合网天天看片 | 久久这里只精品最新地址| 无码 制服 丝袜 国产 另类| 欧美激情精品| 色综合五月天导航| 国产极品久久久| 一区二区三区在线视频播放 | 久久精品性爱视频| 成人福利视频在线| 男女激情免费视频| 久久av国产紧身裤| 97在线观看视频国产| 欧美视频xxx| 精品欧美国产一区二区三区| 久久久久国产精品无码免费看| 国内久久精品| 久久精品99久久| 亚洲一二三四| 日韩精品免费在线| 视频一区二区三区四区五区| 久久久精品一品道一区| 久久无码高潮喷水| 国产精品免费99久久久| 国产精品视频公开费视频| 2017亚洲天堂1024| 欧美一区二区三区的| 国产一级做a爰片在线看免费| 成人丝袜高跟foot| 成年人观看网站| 禁断一区二区三区在线| 国产日韩欧美另类| 牛牛精品视频在线| 亚洲美女精品久久| 中文字幕乱码视频| 一区二区日韩电影| 久久久久国产精品区片区无码| 日韩精品91亚洲二区在线观看| 亚洲一区二区三区乱码| 日韩中文字幕| 欧美亚洲激情在线| av网在线观看| 日韩欧美国产1| 国产一区二区视频网站| 国产欧美一区二区精品久导航| 久热在线视频观看| 亚洲福利一区| 色综合久久久久久久久五月| **国产精品| 欧美一级免费视频| 国内精品不卡| 日韩精品久久久久| 国产成人精品免费看视频| 欧美日韩亚洲一区二区| 国产小视频你懂的| 91丨九色丨黑人外教| 五月天视频在线观看| 99在线精品免费视频九九视 | 国产中文在线| 精品少妇一区二区三区视频免付费| 久久久久久久久久一区二区三区| 久久久久久久久免费| 风韵丰满熟妇啪啪区老熟熟女| 视频在线观看一区| 糖心vlog在线免费观看| 热久久天天拍国产| 欧美极品色图| 亚洲国产中文在线二区三区免| 国产成人精品午夜| xxx在线免费观看| 久久九九亚洲综合| 国产香蕉在线| 亚洲精品国产福利| av综合在线观看| 欧美视频在线不卡| 日本高清不卡码| 亚洲一区二区黄色| 国产第一页浮力| 国产喷白浆一区二区三区| 中国极品少妇xxxx| 国产**成人网毛片九色| 一个色综合久久| 日韩电影在线一区二区| 亚洲自偷自拍熟女另类| 激情久久五月| 黄网站色视频免费观看| 中文字幕日韩欧美精品高清在线| 日韩三级电影网站| 日日天天久久| 精品国产乱码一区二区三区四区| 免费观看亚洲视频大全| 国产一区二区在线免费| 成人黄色免费观看| 青青久久aⅴ北条麻妃| 国产v日韩v欧美v| 久久久久久91香蕉国产| 女囚岛在线观看| 精品国内亚洲在观看18黄| 精品国产99久久久久久| 色天天综合狠狠色| 最新电影电视剧在线观看免费观看| 日韩av综合网| 亚洲色图欧美视频| 日韩极品精品视频免费观看| 无码精品在线观看| 亚洲精品白浆高清久久久久久| 午夜精品一区二区三| 日韩久久久精品| 亚洲成人黄色片| 精品欧美久久久| www.国产黄色| 亚洲精品在线电影| 天天操天天插天天射| 亚洲精品一区二区三区四区高清| 精品人妻无码一区二区三区蜜桃一 | 麻豆精品在线播放| 日韩av.com| 国产精品一区二区久激情瑜伽| 极品人妻一区二区| 国产a区久久久| 美国黄色一级视频| 99久久婷婷国产综合精品电影| 中文字幕在线观看网址| 26uuu亚洲综合色| 亚洲无人区码一码二码三码的含义| 国产欧美日韩亚州综合| 在线观看黄网址| 一区二区三区小说| 五月天综合激情| 欧美午夜片在线观看| 国产内射老熟女aaaa∵| 亚洲精品一区二区三区香蕉 | 欧美黑人巨大xxxxx| 国产精品一区二区久久久久| 亚洲色图综合| 亚洲在线第一页| 一区二区三区日本久久久| 亚洲三区四区| 一区视频在线看| 99久久国产宗和精品1上映| 极品少妇xxxx偷拍精品少妇| 在线观看免费看片| 久久婷婷久久一区二区三区| 天堂资源在线视频| 一区二区免费在线| 国产成人无码av| 日韩一级完整毛片| 亚洲 精品 综合 精品 自拍| 中文字幕日韩精品有码视频| 欧美videossex| 国产成人一区三区| 亚洲91在线| 欧洲精品亚洲精品| 欧美先锋影音| 成年人在线观看视频免费| 国产成人自拍网| 女人裸体性做爰全过| 午夜一区二区三区视频| 亚洲天堂aaa| 亚洲精品videossex少妇| 八戒八戒神马在线电影| 国产做受高潮69| 色婷婷综合久久久中字幕精品久久| 国产精品亚洲自拍| 九九热hot精品视频在线播放| 一区二区三区在线视频111 | 香蕉精品视频在线| 午夜影院日韩| 图片区偷拍区小说区| 国产精品久久久久久久久免费丝袜 | 免费国产羞羞网站美图| 精品国产999| 在线观看不卡的av| 国产一区二区三区在线观看视频| 欧洲在线视频| 成人在线一区二区| 精品久久久中文字幕| 男人天堂1024| 成人av动漫在线| 久久久精品一区二区涩爱| 欧美人妇做爰xxxⅹ性高电影| 欧美zzoo| 欧美伊久线香蕉线新在线| 涩爱av色老久久精品偷偷鲁 | 日韩精品电影| 亚洲人成无码www久久久| 极品少妇xxxx偷拍精品少妇| 亚洲性猛交xxxx乱大交| 五月婷婷久久综合| 国产成人手机在线| 久久99精品久久久久久琪琪| 91国产精品| 一区二区三区久久网| 毛片av一区二区| 1024在线看片| 欧美三级午夜理伦三级中视频| 亚洲色图另类小说| 久久最新资源网| 亚洲成人黄色| 国产aaa免费视频| 不卡视频在线看| 免费在线不卡视频| 日韩高清有码在线| 亚洲性色av| 欧美一级片免费观看| 久久久精品午夜少妇| 亚洲自拍偷拍一区二区 | 国产又黄又爽免费视频| 久久国产麻豆精品| 三级黄色录像视频| 91精品免费观看| 美女尤物在线视频| 精品久久久久久中文字幕动漫| 亚洲色图插插| 日本特黄在线观看| 亚洲成人自拍偷拍| 天堂а√在线8种子蜜桃视频| 热久久免费视频精品| 成人高清av| 激情在线观看视频| 一区二区三区免费看视频| 男人天堂手机在线观看| 日本成熟性欧美| 日韩精品影视| 国产三级三级看三级| 国产欧美日韩亚州综合 | 国内自拍视频一区二区三区| 野战少妇38p| 91精品91久久久中77777| 美女羞羞视频在线观看| 99久久免费国| 久久久久一区| 国产免费美女视频| 欧美www视频| 搜成人激情视频| 精品嫩模一区二区三区| av一区二区三区在线| 欧美黄色一级大片| 欧美刺激性大交免费视频| 自拍亚洲一区|