精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

99久久综合99久久综合网站| 狠久久av成人天堂| 69精品人人人人| 欧美黑人在线观看| 黄色网址在线播放| 精品伊人久久久久7777人| 九九热这里只有精品6| 粉嫩av懂色av蜜臀av分享| 久久国内精品| 亚洲第一久久影院| 夜夜爽99久久国产综合精品女不卡 | 欧美日韩有码| 欧美一级搡bbbb搡bbbb| 大j8黑人w巨大888a片| 69久久夜色| 成人永久免费视频| 国产精品视频自在线| 国产精品成人免费一区二区视频| 日韩精品免费一区二区在线观看 | 麻豆精品国产传媒| 亚洲1234区| 亚洲综合色自拍一区| 亚洲精品中文字幕乱码三区不卡| 人人妻人人澡人人爽人人欧美一区 | 香蕉一区二区| 欧美一区二区国产| av在线无限看| 超碰一区二区| 亚洲国产婷婷综合在线精品| 在线天堂一区av电影| 全色精品综合影院| 成人教育av在线| 亚洲tv在线观看| 一级特黄aa大片| 日韩精品久久理论片| 国产91成人video| 黄色一级片在线| 99精品美女| 最近2019年日本中文免费字幕| 国产三级国产精品| 日韩免费电影在线观看| 精品久久久三级丝袜| 中文字幕 欧美日韩| 456成人影院在线观看| 欧美性猛xxx| 日本精品免费在线观看| 超碰高清在线| 五月激情丁香一区二区三区| 99色这里只有精品| 啦啦啦中文在线观看日本| 亚洲欧洲成人av每日更新| 午夜精品区一区二区三| 成人综合影院| 国产午夜亚洲精品理论片色戒| 六十路精品视频| 天天舔天天干天天操| 成人黄色大片在线观看| 国产91亚洲精品一区二区三区| 国产黄色av片| 国产高清在线观看免费不卡| 91麻豆精品秘密入口| 亚洲第一色视频| 成人性色生活片| 精品午夜一区二区三区| 手机福利在线| 国产欧美精品国产国产专区| 亚洲日本japanese丝袜| 国产三区视频在线观看| 樱花影视一区二区| 国产美女主播在线播放 | 99精品视频在线观看播放| 久久九九亚洲综合| 动漫性做爰视频| 精品1区2区3区4区| 55夜色66夜色国产精品视频| 国产精品熟女视频| 久久aⅴ国产欧美74aaa| 91香蕉视频在线下载| 日韩专区第一页| 国产欧美日韩中文久久| 在线免费观看一区二区三区| 免费网站在线观看人| 大伊人狠狠躁夜夜躁av一区| 欧美在线观看视频网站| 国产精品3区| 亚洲电影在线观看| 国产精品一二三区在线观看| 国产精品久久久久久久免费观看| 欧美日韩第一页| av大片在线免费观看| 久久66热偷产精品| 国产视频在线观看一区| 爱久久·www| 亚洲综合一区二区| 日本888xxxx| **爰片久久毛片| 永久免费毛片在线播放不卡| 永久看片925tv| 久久一区二区三区四区五区| 亚洲一区亚洲二区亚洲三区| 青春草在线观看| 亚洲精品精品亚洲| 男人舔女人下面高潮视频| 亚洲精品午夜| 伊人男人综合视频网| 久久午夜鲁丝片午夜精品| 日韩av中文在线观看| 成人午夜电影免费在线观看| av在线电影播放| 午夜精品影院在线观看| 男人午夜视频在线观看| 精品一区欧美| 欧美韩日一区二区| 97人妻精品一区二区三区| 91麻豆视频网站| 黄色一级大片免费| 久久人人视频| 亚洲欧美日本另类| 久久久久久国产精品免费播放| 蜜桃91丨九色丨蝌蚪91桃色| 免费成人深夜夜行视频| 96av在线| 欧美成人精品福利| 九九热最新地址| 麻豆精品国产91久久久久久| 精品国产_亚洲人成在线| 91亚洲天堂| 欧美挠脚心视频网站| 免费看黄色的视频| 国产日韩亚洲欧美精品| 国产精品久久久对白| 羞羞视频在线免费国产| 91精品国产一区二区三区香蕉| 在线观看免费黄色网址| 日韩高清在线观看| 欧美视频1区| 毛片无码国产| 亚洲欧美国产一本综合首页| 制服.丝袜.亚洲.中文.综合懂色| 成人动漫一区二区三区| 女人色极品影院| 五月亚洲婷婷| 欧美理论电影在线观看| 国产麻豆免费视频| 亚洲欧美日韩系列| 亚洲怡红院在线| 婷婷综合五月| 91中文精品字幕在线视频| 欧美另类极品| 制服丝袜中文字幕亚洲| 1024手机在线视频| 国产精品18久久久久久vr| 男女裸体影院高潮| 午夜久久av| 97国产精品视频人人做人人爱| 黄片毛片在线看| 亚洲成av人综合在线观看| 在线精品一区二区三区| 99日韩精品| 欧美精品一区二区三区久久| 欧美电影免费观看高清完整| 亚洲欧美日韩天堂| 在线视频 91| 亚洲女人****多毛耸耸8| 在线播放国产视频| 99热这里只有成人精品国产| 日韩欧美亚洲精品| 日韩在线你懂得| 九九精品视频在线观看| 亚洲av片一区二区三区| 在线观看区一区二| 老司机深夜福利网站| 国产乱码精品一区二区三| 欧美视频在线观看视频| 欧美猛男男男激情videos| 国产精品中文久久久久久久| 日本在线视频www鲁啊鲁| 日韩高清av在线| 中文字幕av免费观看| 一区二区三区在线不卡| 捆绑裸体绳奴bdsm亚洲| 美女视频网站久久| 岛国大片在线播放| 精品日产免费二区日产免费二区| 91网站免费观看| 麻豆免费在线| 日韩在线观看免费高清完整版| 亚洲国产综合一区| 色婷婷综合五月| 中文字幕手机在线观看| 久久久久久久电影| 99精品999| 久久精品日韩欧美| 四虎免费在线观看视频| 亚洲日本三级| 5566中文字幕一区二区| 欧美momandson| 久久99亚洲精品| av在线二区| 亚洲精品短视频| 国产精品系列视频| 欧美视频第一页| 538精品在线观看| 国产蜜臀av在线一区二区三区| 在线播放第一页| 男女性色大片免费观看一区二区 | 国产精品一区二区久久不卡| 成人在线免费播放视频| 国产精品www.| 亚洲一区二区不卡视频| 亚洲三级网址| 成人资源视频网站免费| 日韩伦理一区二区| 日韩av电影手机在线观看| 黄页网站在线| 久久伊人91精品综合网站| 国产午夜在线观看| 日韩av在线天堂网| 亚洲国产中文字幕在线| 制服丝袜在线91| 精品国产青草久久久久96| 午夜久久久久久| 国产一级生活片| 一区二区三区.www| 国产极品美女在线| 国产精品福利av| 国产性猛交xx乱| 久久精品亚洲一区二区三区浴池| 91黄色免费视频| 风流少妇一区二区| 波多野结衣中文字幕在线播放| 麻豆精品在线看| 簧片在线免费看| 免费av成人在线| 一本久道中文无码字幕av| 亚洲中字黄色| av动漫免费看| 鲁大师影院一区二区三区| 黄色国产精品视频| 亚洲黄色毛片| 日韩免费一级视频| 99成人免费视频| 国内外成人免费激情视频| 国产日韩免费| 成人黄色片视频| 视频一区免费在线观看| 五月婷婷之综合激情| 日韩精品1区2区3区| 国产裸体免费无遮挡| 日日骚欧美日韩| 亚洲高清在线免费观看| 麻豆国产91在线播放| 亚洲黄色av片| 国产一区不卡在线| 波多野结衣三级视频| 成人精品免费看| 中文字幕第3页| 久久午夜羞羞影院免费观看| 国产熟女一区二区| 国产精品污污网站在线观看| 国产精品三区在线观看| 亚洲国产一二三| 欧美成人精品欧美一级乱黄| 色悠久久久久综合欧美99| 怡春院在线视频| 日韩亚洲欧美中文三级| 人妻丰满熟妇av无码区hd| 日韩av一区二区在线| 国产私人尤物无码不卡| 日韩有码在线播放| 中文字幕中文字幕在线中高清免费版 | 国产精品视频入口| 四虎884aa成人精品最新| 日韩精品成人一区二区在线观看| 欧美国产一区二区三区激情无套| 97在线免费视频观看| 国产欧美高清| www.久久久精品| 国产成+人+日韩+欧美+亚洲| 国产精品一区二区入口九绯色| 国产日韩av一区| 青娱乐国产精品| 色天使久久综合网天天| 一卡二卡在线视频| 亚洲电影免费观看高清完整版在线观看 | 中文字幕免费在线观看视频一区| 国语对白在线播放| 精品国产精品自拍| 又骚又黄的视频| 亚洲国产成人精品久久| 1pondo在线播放免费| 久久人人爽人人爽人人片av高请 | 欧美日韩第一区日日骚| 亚洲伦理在线观看| 在线观看视频亚洲| 另类视频在线| 91精品国产综合久久香蕉的用户体验 | 久草手机视频在线观看| 午夜精品在线视频一区| 国产精品无码免费播放| 亚洲欧美制服另类日韩| 最新日本在线观看| 国产成人在线一区| 精品国产18久久久久久洗澡| 在线国产精品网| 老司机免费视频久久| 亚洲精品久久一区二区三区777| 欧美韩国日本不卡| 日韩三级免费看| 日韩欧美精品在线| 最新97超碰在线| 热久久免费视频精品| 91精品啪在线观看国产爱臀| 中文字幕在线观看一区二区三区| 欧美一级专区| 中文字幕无码人妻少妇免费| 亚洲精品综合在线| 中文字幕精品一区二| 亚洲欧美日韩久久久久久| 国产黄色大片在线观看| 91免费欧美精品| 99re66热这里只有精品8| 波多野结衣家庭教师视频| a级高清视频欧美日韩| 欧美日韩国产精品综合| 91精品国产综合久久久久久久| 97电影在线| 国产成人一区二区在线| 沈樵精品国产成av片| 18岁网站在线观看| 不卡视频免费播放| 精品在线视频观看| 欧美哺乳videos| 视频在线观看入口黄最新永久免费国产| 91九色视频导航| 91亚洲国产高清| 极品粉嫩美女露脸啪啪| 亚洲欧美在线视频| 亚洲专区第一页| 日韩在线高清视频| 国产免费区一区二区三视频免费 | 一区二区三区四区免费| 欧美性xxxx极品高清hd直播| 男同在线观看| 国产经典一区二区| 欧美一级精品片在线看| wwwwww.色| 国产精品日韩成人| 91资源在线视频| 欧美精品少妇videofree| 日韩精品三级| 欧美亚洲色图视频| 99在线热播精品免费| 韩国av中文字幕| 亚洲欧美国产制服动漫| 国产乱子精品一区二区在线观看| 在线观看成人一级片| 国产一区二区三区视频在线播放| 日本青青草视频| 精品国产区一区| 在线男人天堂| 亚洲一区二区在线看| 极品少妇一区二区| 黄色一级视频免费| 日韩精品极品毛片系列视频| 国产v综合v| 三年中国中文在线观看免费播放| 国产乱码精品一区二区三区忘忧草 | 欧美一区二区三区视频免费播放| h网站久久久| 国产一区国产精品| 久久久噜噜噜久久狠狠50岁| 人成免费在线视频| 日韩欧美国产综合| 伊人久久综合一区二区| 一本一道久久久a久久久精品91| 国产福利不卡视频| 91国产丝袜播放在线| 日韩在线视频播放| 中文字幕一区二区三区四区久久| 99999精品视频| 一区在线观看免费| 人妻少妇精品无码专区久久| 国产精品男女猛烈高潮激情| 欧美在线高清| 人人妻人人澡人人爽人人精品| 3d动漫精品啪啪1区2区免费| 午夜激情在线播放| 一区二区三区四区久久| 99久久久精品免费观看国产蜜| 中文字幕日本人妻久久久免费| 欧美日本高清一区| 红桃成人av在线播放| 18深夜在线观看免费视频| 日本韩国一区二区| 久久青青色综合| 在线丝袜欧美日韩制服| 久久众筹精品私拍模特| www.色呦呦| 国产精品视频公开费视频|