日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

如何优雅的处理业务逻辑中的定时和延时问题?

發布時間:2025/3/21 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 如何优雅的处理业务逻辑中的定时和延时问题? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本文將從如何處理業務流程和信息分發中的定時和延時問題出發,橫向比較了業界常見的幾種方案,如直接多線程編碼、Spring定時調度框、大型分布式調度框架、消息中間件定時消息,因為消息中間件接口友好,調用方便,性能穩定,特別推薦了使用消息中間件來處理此類問題。同時對比了ActiveMQ、RabbitMQ和RocketMQ三種消息中間件在此類場景中的優劣勢。為了幫助大家理解消息中間件的使用,特別列舉了三種常見場景及使用方案,同時列舉了消息中間件RocketMQ定時消息的優勢,近期定時消息特性會做大的更新,推出的新版定時消息已在阿里內部,穩定運行近兩年,近期會發布到公有云上,敬請期待。

1 適用場景

在業務處理流程和信息分發過程中,定時延時處理的需求可謂無處不在。如何優雅的滿足想要在未來的某個時間點,處理預期事件、分發既定信息,滿足對時間線的強訴求場景和業務邏輯的設計,常常也是我們經常會遇到的問題。筆者在橫向對比過幾個常用的技術方案之后,大概總結如下,分別都會有不同的優缺點:**

?

友好的接口設計、敏捷的開發模式,便于開發者快速高效地集成、研發。同時支持“定時”和“延時”兩種場景,以高性能和高可用,支撐大規模的分布式業務場景。整體來看,消息中間件的使用更加便捷。那么在不同的消息中間件之間,是否對這樣的功能又有差別呢?首先讓我們來看看一個優秀的定時延時消息中間件,需要滿足哪些特性?**

  • 輕量級,高性能,精確到秒級
  • 支持高可用
  • 足夠的定時長度,比如可以支持到30天、60天等
  • 支持取消定時消息,取消延時任務
  • 支持絕對定時和相對定時
  • 支持海量定時消息存儲,高時效精度

綜上,我們對業界幾個常見的消息中間件做了簡單對比:在現有的主流消息系統中,ActiveMQ、RabbitMQ和RocketMQ都有提供定時消息的實現。但是ActiveMQ定時性能在300TPS左右,只適合小量場景。RabbitMQ提供了一個定時插件,性能可達2000TPS左右,但不支持高可用,且不能堆積太多消息。RocketMq融合了各大定時技術組件的優勢,同時彌補了其他組件設計上的局限,研發出了RocketMq新版定時消息,以適用支撐更多定時延時場景。是騾子是馬拉出來溜溜。我們簡單看下幾個典型定時延時場景,使用RocketMq定時消息的實現方案。

場景一?

用戶秒殺爆品,使用優惠券,創建訂單就凍結了用戶優惠券額度,對于下單失敗的用戶,需要超時自動解凍用戶被凍結的優惠券額度。超時自動解凍機制,需要滿足高精度、高可用、支持海量業務、支持超長延時。

場景二?

外賣業務對時效性非常敏感,從用戶下單起,便產生了“外送超時時間”,保障外賣業務的順序進行。外賣超時機制,需要滿足高精度、高可用、支持海量業務。

?

場景三?

釘釘軟件設置日程后,需要在日程時間達到時,自動提醒用戶。釘釘日程提醒,需要滿足高精度、支持超長延時。

2 概念介紹

那么讓我們來熟悉下消息隊列RocketMq定時消息對于定時消息、延時消息的概念。在用戶使用的視角和體驗上,分為“定時性消息”和“延時性消息”兩大類。定時性消息:Producer 將消息發送到消息隊列 RocketMQ 服務端,但并不期望這條消息立馬投遞,而是推遲到未來的某一個確定時間投遞到 Consumer 進行消費。如上一節中“場景三”。延時性消息:Producer 將消息發送到消息隊列 RocketMQ 服務端,但并不期望這條消息立馬投遞,而是從當前時間延遲一定時段后才投遞到 Consumer 進行消費。如上一節中“場景一”和“場景二”。使用文檔詳見官網:https://help.aliyun.com/document_detail/43349.html?spm=a2c4g.11186623.4.2.7e613030bocffQ

3 RockeMq定時消息優勢

高性能高可用RocketMQ的分級延遲消息,性能較高,可無限堆積,且滿足高可用要求,支持精確到秒級的定時需求,且在海量存儲的情況下,時效精度較高。產品成熟度高在阿里巴巴經濟體的各大業務及大促場景中,RocketMq定時消息已經得到廣泛運用,經歷了無數流量洪峰和穩定性考驗,積累沉淀出了業界先進穩定的定時消息系統。技術社區活躍RocketMq作為apache頂級項目,已經建設完整的技術生態體系。支持多語言,多協議,定時消息天然繼承了頂級項目的優點,具備完整的技術生態。專業技術支持阿里云專注云計算,RocketMq持續伴隨阿里云技術架構進化升級。技術設施對外輸出的同時,以強大的技術團隊服務客戶業務,為使用RocketMq產品的客戶,持續提供專業技術支持。

4 特別說明

本次新版定時消息功能進行了深度內核層架構優化,設計原理和功能實現上都做了較大的升級調整,從根本上進行了定時消息架構的變革,極大地提高了定時消息的穩定性和性能。

總結

以上是生活随笔為你收集整理的如何优雅的处理业务逻辑中的定时和延时问题?的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。