久久亚洲成a人片熟女精品色一区二区三区|国产精品视频第一精品视频|av天堂热无码手机版|亚洲?v无码久久无遮挡|国产精品偷伦视频免费观看国产|麻豆国产自产精品丰满熟妇|av无码av不卡一区二区|久久亚洲精品中文字

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運(yùn)營(yíng)的一線實(shí)戰(zhàn)洞察。

多語(yǔ)言微服務(wù)異步任務(wù)治理:從統(tǒng)一協(xié)議到調(diào)度架構(gòu)實(shí)踐

多語(yǔ)言微服務(wù)異步任務(wù)治理:從統(tǒng)一協(xié)議到調(diào)度架構(gòu)實(shí)踐 去年我們團(tuán)隊(duì)把一套單體應(yīng)用拆成多語(yǔ)言微服務(wù)的時(shí)候最讓我難受的不是服務(wù)發(fā)現(xiàn)也不是網(wǎng)關(guān)路由反而是那些平時(shí)不起眼的異步任務(wù)。訂單關(guān)了、消息要推、報(bào)表要生成、支付回調(diào)要處理一個(gè)系統(tǒng)里亂七八糟的異步邏輯在單體里可能就是一個(gè)線程池的事一旦拆成多語(yǔ)言微服務(wù)立刻變成了異步任務(wù)調(diào)度與隊(duì)列管理的混戰(zhàn)。你要是也處在類似階段——服務(wù)拆分之后發(fā)現(xiàn)Go寫(xiě)了一套workerPython那邊掛了CeleryNode服務(wù)自己用Redis list輪詢Java團(tuán)隊(duì)搬了一套重型消息框架——這篇文章大概率能幫上你的忙。我會(huì)把我實(shí)踐里的選型邏輯、協(xié)議設(shè)計(jì)、調(diào)度器與Worker的邊界劃分、隊(duì)列治理方案以及三起真實(shí)事故復(fù)盤(pán)都寫(xiě)出來(lái)盡量讓不同語(yǔ)言背景的同事都能看懂。1. 從單體爆破到多語(yǔ)言微服務(wù)異步任務(wù)最先失守1.1 重構(gòu)之后我的異步任務(wù)解體成了四種風(fēng)格先說(shuō)我們當(dāng)時(shí)的場(chǎng)景業(yè)務(wù)核心是電商訂單域拆分后訂單服務(wù)用了Go用戶與優(yōu)惠券服務(wù)是Python消息推送和實(shí)時(shí)通知是Node.js數(shù)據(jù)與報(bào)表鏈路在Java那邊。拆分第一周RPC、API網(wǎng)關(guān)、配置中心很快就位大家覺(jué)得遷移快結(jié)束了。結(jié)果一盤(pán)點(diǎn)異步鏈路情況完全失控Go的訂單服務(wù)寫(xiě)了一個(gè)內(nèi)部任務(wù)表用goroutine加定時(shí)器掃表本地內(nèi)存交付。Python的營(yíng)銷服務(wù)直接用Celery任務(wù)進(jìn)Redisworker單獨(dú)部署。Node的推送服務(wù)用Redis list做簡(jiǎn)單隊(duì)列靠setInterval輪詢。Java的數(shù)據(jù)同步任務(wù)接了一個(gè)重量級(jí)RocketMQ體系只為了同步幾張表。最要命的是這些方案之間沒(méi)有任何共同語(yǔ)言。一個(gè)訂單超時(shí)關(guān)閉的任務(wù)在Go里是訂單表里的字段輪詢掃描在Python那邊可能已經(jīng)變成了Celery的eta延遲任務(wù)在Node那邊則是定時(shí)推送一條消息再說(shuō)。排查鏈路問(wèn)題的時(shí)候每個(gè)人都要先問(wèn)一句你說(shuō)的隊(duì)列是哪個(gè)隊(duì)列數(shù)據(jù)對(duì)不上語(yǔ)義對(duì)不上重試策略也對(duì)不上。1.2 多語(yǔ)言場(chǎng)景真正缺的不是隊(duì)列而是統(tǒng)一的任務(wù)語(yǔ)義我后來(lái)想明白一個(gè)問(wèn)題多語(yǔ)言微服務(wù)架構(gòu)里異步任務(wù)之所以亂核心不在于缺一個(gè)消息隊(duì)列而在于缺一套所有語(yǔ)言都遵守的任務(wù)語(yǔ)義。隊(duì)列只是運(yùn)輸工具比運(yùn)輸工具更重要的是任務(wù)什么格式、誰(shuí)負(fù)責(zé)投遞、誰(shuí)負(fù)責(zé)執(zhí)行、失敗怎么重試、成功怎么確認(rèn)。以我們當(dāng)時(shí)出現(xiàn)的訂單重復(fù)關(guān)閉為例Go側(cè)掃描任務(wù)表把同一訂單ID的任務(wù)發(fā)了兩次Python側(cè)的Celery重試機(jī)制又帶回一份Node側(cè)還有一份定時(shí)器觸發(fā)的副本。三個(gè)語(yǔ)言各自認(rèn)為自己在做對(duì)的事合在一起就是災(zāi)難。如果一開(kāi)始就有統(tǒng)一的協(xié)議、統(tǒng)一的投遞路徑、統(tǒng)一的確認(rèn)與冪等約定這件事根本不會(huì)發(fā)生。所以下面我寫(xiě)的所有內(nèi)容本質(zhì)上都是在回答一個(gè)問(wèn)題當(dāng)你的團(tuán)隊(duì)用三四種語(yǔ)言開(kāi)發(fā)微服務(wù)時(shí)如何用一套統(tǒng)一機(jī)制管住所有異步任務(wù)讓每個(gè)語(yǔ)言的worker都像同一個(gè)系統(tǒng)的零件一樣協(xié)同工作。2. 隊(duì)列基礎(chǔ)設(shè)施選型我最終沒(méi)有選Kafka也沒(méi)有選Celery2.1 先列需求清單再談選型很多團(tuán)隊(duì)選隊(duì)列是拍腦袋決定的熱門(mén)就上Kafka團(tuán)隊(duì)用過(guò)RabbitMQ就繼續(xù)用RabbitMQPython組偏愛(ài)Celery就直接全局Celery。我不建議這樣。多語(yǔ)言場(chǎng)景下的選型必須先把需求寫(xiě)清楚而且要把客戶端生態(tài)覆蓋度放在第一位。我們的核心需求有四條至少三種語(yǔ)言Go、Python、Node.js、Java都要有成熟穩(wěn)定的客戶端。支持任務(wù)延遲投遞比如支付超時(shí)15分鐘以后才處理。消費(fèi)端至少要支持拉取和確認(rèn)語(yǔ)義不允許消息被輕易丟失。運(yùn)維成本要控制住不希望為異步任務(wù)再單獨(dú)引入一套需要專門(mén)維護(hù)的集群。2.2 Redis Stream、RabbitMQ、Kafka三方對(duì)比我當(dāng)時(shí)把主流選項(xiàng)放在一張表里做對(duì)比列在最前面的不是性能而是多語(yǔ)言友好度。評(píng)估維度Redis StreamRabbitMQKafka多語(yǔ)言客戶端成熟度極好Redis客戶端遍地都是好AMQP協(xié)議統(tǒng)一但各語(yǔ)言庫(kù)質(zhì)量差異明顯好主流語(yǔ)言都有官方/社區(qū)客戶端延遲隊(duì)列支持原生不直接支持需配合ZSET或定時(shí)掃描插件/死信實(shí)現(xiàn)不同客戶端語(yǔ)義不統(tǒng)一不原生支持需要配合存儲(chǔ)做掃描消費(fèi)確認(rèn)支持消費(fèi)組有Pending列表機(jī)制支持手動(dòng)ACK支持offset提交語(yǔ)義偏分區(qū)消費(fèi)運(yùn)維成本低復(fù)用現(xiàn)有Redis即可中需單獨(dú)部署維護(hù)Erlang節(jié)點(diǎn)高集群規(guī)模、磁盤(pán)、分區(qū)都要管數(shù)據(jù)積壓處理受限內(nèi)存/磁盤(pán)配置需要設(shè)置MaxLen較好但內(nèi)存積壓同樣要規(guī)劃極好天然為高吞吐與積壓設(shè)計(jì)典型QPS適用區(qū)間中低幾百~幾千級(jí)表現(xiàn)優(yōu)秀中高吞吐超高吞吐與大流場(chǎng)景說(shuō)實(shí)話我們當(dāng)時(shí)的單日異步任務(wù)量級(jí)也就是百萬(wàn)上下峰值QPS幾百Redis Stream在這個(gè)規(guī)模下完全夠用。Kafka是好東西但用在訂單超時(shí)、發(fā)短信、生成報(bào)表這種場(chǎng)景相當(dāng)于用載重卡車送外賣運(yùn)維成本和分區(qū)語(yǔ)義反而成了負(fù)擔(dān)。RabbitMQ本身不錯(cuò)可一旦涉及延遲消息、優(yōu)先級(jí)、死信配置不同語(yǔ)言客戶端理解不一致的問(wèn)題非常明顯協(xié)調(diào)成本很高。2.3 為什么我選了Redis Stream 獨(dú)立調(diào)度器的組合最終我們選的是Redis Stream作為隊(duì)列存儲(chǔ)前面加一個(gè)獨(dú)立的Task Dispatcher調(diào)度器統(tǒng)一對(duì)外提供API。這個(gè)選擇有三個(gè)理由所有語(yǔ)言已經(jīng)有現(xiàn)成的Redis客戶端不需要新引入基礎(chǔ)設(shè)施學(xué)習(xí)成本和部署成本都很低。用獨(dú)立調(diào)度器把延遲投遞從各個(gè)語(yǔ)言里收攏到一處。各服務(wù)不再自己實(shí)現(xiàn)延遲任務(wù)全部調(diào)用同一套R(shí)EST接口語(yǔ)義就天然統(tǒng)一。調(diào)度器統(tǒng)一管理任務(wù)協(xié)議、重試策略、死信隊(duì)列語(yǔ)言層面的差異全部被隔離在Worker內(nèi)部跨語(yǔ)言協(xié)作時(shí)只需要對(duì)齊HTTP API和消息格式。這個(gè)架構(gòu)思路后來(lái)被證明是整場(chǎng)治理里最劃算的一筆投入。3. 跨語(yǔ)言任務(wù)協(xié)議一張Envelope吃掉所有語(yǔ)義差異3.1 消息體設(shè)計(jì)先定下來(lái)用什么隊(duì)列都是后話我見(jiàn)過(guò)不少團(tuán)隊(duì)第一步就糾結(jié)隊(duì)列版本、Consumer Group參數(shù)結(jié)果消息體還是誰(shuí)寫(xiě)誰(shuí)定Go發(fā)一段JSON只有兩個(gè)字段Python消費(fèi)端一臉懵。協(xié)議才是全局約束力最強(qiáng)的部分必須先定。我們統(tǒng)一了一套Envelope結(jié)構(gòu)所有任務(wù)消息必須是這個(gè)殼{ task_id: b3e1d5a8-7f20-4f1b-ae7d-1234567890ab, task_type: order.close_timeout, payload_version: 1, payload: { order_id: 202509110001, store_id: S10086 }, schedule_time: 2025-09-11T12:45:0008:00, timeout_ms: 30000, max_retries: 3, retry_count: 0, priority: 100, trace_id: trace-7a8b9c }里面每個(gè)字段都不是隨便加的。task_id是全局唯一任務(wù)標(biāo)識(shí)用來(lái)做冪等與追蹤payload_version避免上游改了字段結(jié)構(gòu)下游老代碼解析失敗schedule_time統(tǒng)一用帶時(shí)區(qū)的RFC3339字符串timeout_ms告訴Worker這個(gè)任務(wù)最長(zhǎng)允許跑多久max_retries與retry_count控制重試循環(huán)priority作為可選優(yōu)先級(jí)字段供調(diào)度器排序trace_id把一次用戶請(qǐng)求鏈路串起來(lái)。3.2 字段設(shè)計(jì)背后的三個(gè)決策點(diǎn)第一個(gè)決策點(diǎn)是時(shí)間表達(dá)。我們強(qiáng)制所有語(yǔ)言在協(xié)議里交換字符串時(shí)間格式必須是RFC3339且?guī)r(shí)區(qū)偏移比如2025-09-11T12:45:0008:00。不要傳毫秒時(shí)間戳更不要傳2025-09-11 12:45:00這種沒(méi)有時(shí)區(qū)的字符串否則Go解析出UTC、Python解析出本地時(shí)間、Node又轉(zhuǎn)成ISO格式同一個(gè)延遲任務(wù)會(huì)被三種語(yǔ)言理解成三個(gè)時(shí)刻。第二個(gè)決策點(diǎn)是版本號(hào)。剛開(kāi)始我覺(jué)得這字段多余直到某次Python側(cè)把一個(gè)訂單結(jié)構(gòu)從兩字段改成四字段而Go側(cè)老Worker還在跑解析直接炸了。payload_version至少能讓你知道是我老了還是你錯(cuò)了再配合調(diào)度器做版本兼容路由比全員升級(jí)靠譜得多。第三個(gè)決策點(diǎn)是優(yōu)先級(jí)。起初我們沒(méi)用它后來(lái)發(fā)現(xiàn)訂單超時(shí)關(guān)閉和報(bào)表導(dǎo)出混在同一隊(duì)列報(bào)表任務(wù)把訂單任務(wù)堵住了。加上priority后調(diào)度器在入隊(duì)前按優(yōu)先級(jí)分桶高優(yōu)任務(wù)進(jìn)入單獨(dú)的Streamworker消費(fèi)時(shí)優(yōu)先處理高優(yōu)桶。3.3 序列化與壓縮不要神話Protocol Buffers我們也認(rèn)真考慮過(guò)是不是直接用Protocol Buffers統(tǒng)一掉JSON。結(jié)論是這個(gè)場(chǎng)景下JSON配上壓縮完全夠用而且多語(yǔ)言兼容性最好。Protocol Buffers雖然性能好但每次字段調(diào)整都要重新生成代碼跨語(yǔ)言團(tuán)隊(duì)同步成本很高。我們的任務(wù)消息平均大小不超過(guò)2KB用Gzip壓縮后在Redis里非常輕量解析也沒(méi)壓力。真正要約束的是JSON結(jié)構(gòu)規(guī)范禁止payload內(nèi)出現(xiàn)未知字段混入、禁止數(shù)組嵌套過(guò)深我們把嵌套深度限制在5層、禁止直接把內(nèi)部數(shù)據(jù)庫(kù)對(duì)象整個(gè)塞進(jìn)消息。所有payload模型要在調(diào)度器側(cè)登記一份Schema消費(fèi)方通過(guò)payload_version獲取對(duì)應(yīng)結(jié)構(gòu)文檔。4. 調(diào)度器與Worker的邊界投遞、消費(fèi)、確認(rèn)、冪等4.1 誰(shuí)負(fù)責(zé)定時(shí)和延遲任務(wù)——獨(dú)立調(diào)度器的職責(zé)多語(yǔ)言混用下最忌諱每個(gè)語(yǔ)言自己實(shí)現(xiàn)延遲邏輯。Go寫(xiě)個(gè)timer、Python下個(gè)Celery beat、Node起個(gè)cron各搞一套的結(jié)果就是同一個(gè)延遲任務(wù)在三個(gè)系統(tǒng)里被注冊(cè)三次。我們把所有延遲與定時(shí)任務(wù)的權(quán)力統(tǒng)一收歸給Task Dispatcher對(duì)外只暴露兩個(gè)APIPOST /tasks注冊(cè)任務(wù)傳Envelope如果schedule_time是未來(lái)時(shí)間就進(jìn)入延遲桶。POST /tasks/{task_id}/cancel取消尚未執(zhí)行的任務(wù)。調(diào)度器內(nèi)部用Redis ZSET存延遲任務(wù)score就是任務(wù)應(yīng)該被執(zhí)行的時(shí)間戳一個(gè)后臺(tái)輪詢每秒鐘掃描一次到期的任務(wù)從ZSET取出后投遞到目標(biāo)Stream。這個(gè)方案的原型代碼非常簡(jiǎn)單# dispatcher內(nèi)部延遲桶掃描邏輯 def scan_delayed_bucket(bucket_key, target_stream): now time.time() tasks rds.zrangebyscore(bucket_key, 0, now, start0, num100, withscoresTrue) for task_bytes, score in tasks: envelope json.loads(task_bytes) rds.xadd(target_stream, envelope, maxlen100000) rds.zrem(bucket_key, task_bytes)掃描成一個(gè)循環(huán)加上多實(shí)例部署時(shí)用分布式鎖防止重復(fù)投遞延遲任務(wù)就全統(tǒng)一了。時(shí)間精度上我們?cè)试S最大5秒誤差對(duì)訂單超時(shí)、短信通知這種場(chǎng)景完全夠用。4.2 消費(fèi)端ACK語(yǔ)義與不同語(yǔ)言的差異Redis Stream的消費(fèi)組模型里每條消息有一個(gè)Pending狀態(tài)Worker拉取后如果沒(méi)確認(rèn)消息會(huì)一直出現(xiàn)在Pending列表里其他Worker不會(huì)再次拿到。確認(rèn)是XAACK未確認(rèn)更久的消息可以被其他Worker認(rèn)領(lǐng)。但不同語(yǔ)言客戶端對(duì)異常后自動(dòng)確認(rèn)的默認(rèn)行為很不一樣。Python的redis-py默認(rèn)讀取后要手動(dòng)確認(rèn)Go的redis客戶端有的版本在消費(fèi)組模式里如果context超時(shí)會(huì)自動(dòng)重新投遞Node的ioredis某些版本一旦解析JSON失敗會(huì)把消息直接標(biāo)記為已消費(fèi)。這些差異直接導(dǎo)致同一條消息在Python側(cè)正常在Go側(cè)被重復(fù)消費(fèi)在Node側(cè)被靜默丟棄。我們的對(duì)策很笨但有效每個(gè)語(yǔ)言Worker的消費(fèi)入口都套一層固定的協(xié)議殼——不管內(nèi)部框架怎么處理進(jìn)入業(yè)務(wù)邏輯之前手動(dòng)為該消息設(shè)置消費(fèi)狀態(tài)標(biāo)記明確為pending只有業(yè)務(wù)函數(shù)返回成功時(shí)才XAACK拋異?;虺瑫r(shí)則直接返回pending交給集群重新分派。這一層殼由各語(yǔ)言的調(diào)度器SDK統(tǒng)一提供不允許業(yè)務(wù)代碼繞過(guò)。4.3 業(yè)務(wù)冪等鍵設(shè)計(jì)多語(yǔ)言混用下最容易踩的坑絕大多數(shù)異步任務(wù)無(wú)法保證只投遞一次要么是生產(chǎn)者重復(fù)投遞要么是消費(fèi)端Ack失敗導(dǎo)致重新消費(fèi)。所以冪等一定不能指望我這條任務(wù)只入隊(duì)一次而要在消費(fèi)邏輯里設(shè)計(jì)好冪等鍵。我們規(guī)定每類任務(wù)在payload里必須包含業(yè)務(wù)冪等鍵比如訂單關(guān)閉任務(wù)的冪等鍵就是order_id。消費(fèi)端處理前先執(zhí)行兩步原子操作# 以訂單關(guān)閉任務(wù)為例 lock_key idem:order.close: order_id acquired rds.set(lock_key, 1, nxTrue, ex300) if not acquired: # 已有其他Worker在處理丟棄本次消費(fèi) return ack()這樣做的目的是把至少一次投遞升級(jí)成恰好一次業(yè)務(wù)處理。我們當(dāng)時(shí)踩過(guò)的真實(shí)教訓(xùn)是Python側(cè)通過(guò)數(shù)據(jù)庫(kù)唯一索引做冪等Go側(cè)通過(guò)Redis鎖做冪等Node側(cè)壓根沒(méi)做導(dǎo)致同一任務(wù)三條鏈路跑出三種處理次數(shù)。后來(lái)所有語(yǔ)言統(tǒng)一用Redis鎖加業(yè)務(wù)冪等鍵問(wèn)題才消亡。5. 隊(duì)列治理重試、死信、積壓、監(jiān)控要提前做5.1 重試策略與退避設(shè)計(jì)不要在同一秒重試異步任務(wù)失敗是常態(tài)網(wǎng)絡(luò)抖動(dòng)、下游服務(wù)超時(shí)、數(shù)據(jù)水位異常都會(huì)讓任務(wù)失敗。重試必須分級(jí)我把重試分成兩層層級(jí)觸發(fā)條件策略終止條件第一層快速重試網(wǎng)絡(luò)異常、鎖沖突、臨時(shí)超時(shí)立即入隊(duì)重試最多2次成功或達(dá)到2次第二層退避重試業(yè)務(wù)依賴如下游未就緒延遲重新入隊(duì)30s、60s、120s成功或達(dá)到max_retries死信處理重試耗盡進(jìn)入DLQ死信隊(duì)列人工或自動(dòng)補(bǔ)償腳本處理這里最大的坑是快速重試不加延時(shí)瞬間把某個(gè)下游服務(wù)打掛。我們直接在調(diào)度器層做了限制同一個(gè)task_type的重試請(qǐng)求最多并發(fā)5個(gè)超出就進(jìn)退避桶。5.2 死信隊(duì)列別讓丟任務(wù)變成常態(tài)我們一開(kāi)始沒(méi)有專門(mén)設(shè)計(jì)死信隊(duì)列任務(wù)重試耗盡后就直接丟棄并打日志。后來(lái)一個(gè)用戶反饋?zhàn)蛱熘Ц冻晒裉旆e分一直沒(méi)到賬排查了半天才發(fā)現(xiàn)積分發(fā)放任務(wù)重試三次后丟了。從那以后所有消費(fèi)失敗的終態(tài)任務(wù)統(tǒng)一進(jìn)DLQDLQ是一條獨(dú)立Stream由專門(mén)的運(yùn)維Worker消費(fèi)按小時(shí)匯總到告警群并保留原始Envelope與錯(cuò)誤堆棧。死信任務(wù)不能簡(jiǎn)單重發(fā)一遍因?yàn)閿?shù)據(jù)可能已經(jīng)發(fā)生變化。我們給DLQ配了一個(gè)重放面板重放前可以修改payload、提升payload_version、重置max_retries這樣補(bǔ)償操作就是可控的。5.3 監(jiān)控指標(biāo)與告警閾值要提前定義隊(duì)列監(jiān)控不是看一眼面板漂不漂亮而是出現(xiàn)異常時(shí)能告訴我們哪里堵了、任務(wù)丟沒(méi)丟、延遲多久。最終沉淀下來(lái)的核心指標(biāo)和閾值如下指標(biāo)名定義建議告警閾值隊(duì)列積壓數(shù)Stream總消息數(shù) - 已確認(rèn)消息數(shù)超過(guò)5000且持續(xù)5分鐘隊(duì)列消費(fèi)延遲P99消息進(jìn)入隊(duì)列時(shí)間戳到被消費(fèi)時(shí)間戳的差值P99 60秒Worker心跳各語(yǔ)言Worker定時(shí)上報(bào)存活狀態(tài)心跳缺失超過(guò)3個(gè)周期任務(wù)失敗率單類型任務(wù)失敗數(shù) / 消費(fèi)總數(shù)高于5%持續(xù)10分鐘DLQ新增量死信隊(duì)列每小時(shí)新增任務(wù)數(shù)每小時(shí)新增超過(guò)20條這些指標(biāo)的數(shù)據(jù)來(lái)源很簡(jiǎn)單調(diào)度器在投遞消息時(shí)打時(shí)間戳Worker在確認(rèn)時(shí)回調(diào)API上報(bào)消費(fèi)耗時(shí)Prometheus按任務(wù)類型聚合。我們沒(méi)引入額外的APM產(chǎn)品但效果已經(jīng)足夠撐起日常值班。6. 三件事故復(fù)盤(pán)TTL消失的任務(wù)、重復(fù)消費(fèi)風(fēng)暴、時(shí)區(qū)幽靈6.1 TTL與延遲隊(duì)列疊加任務(wù)悄悄消失第一個(gè)事故最隱蔽。當(dāng)時(shí)我們?cè)赗edis Stream上設(shè)置了消息最大長(zhǎng)度MAXLEN同時(shí)給每條消息設(shè)置了一個(gè)接近一天的TTL。執(zhí)行某個(gè)數(shù)據(jù)遷移任務(wù)時(shí)上游把任務(wù)入隊(duì)后延遲24小時(shí)執(zhí)行。結(jié)果第二天任務(wù)沒(méi)執(zhí)行隊(duì)列里也找不到記錄。查到最后發(fā)現(xiàn)Redis里XADD添加的消息附帶了TTL而TTL是從寫(xiě)入時(shí)刻開(kāi)始計(jì)算的。當(dāng)延遲隊(duì)列的schedule_time是24小時(shí)后TTL已經(jīng)到期任務(wù)還沒(méi)被調(diào)度器取出就已經(jīng)從Redis里消失了。解決方式很直接延遲桶里的任務(wù)只存ZSET不進(jìn)Stream只有到達(dá)執(zhí)行時(shí)間后才寫(xiě)入Stream并重新計(jì)算TTL。如果某種極端場(chǎng)景恰好需要寫(xiě)入后很久才被消費(fèi)必須把TTL設(shè)置成大于延遲時(shí)間 預(yù)計(jì)處理時(shí)間別讓緩存淘汰邏輯替你決定任務(wù)的命運(yùn)。6.2 消費(fèi)組處理異常導(dǎo)致重復(fù)消費(fèi)風(fēng)暴第二次事故是所有使用消費(fèi)組的團(tuán)隊(duì)都會(huì)遇到的。某天營(yíng)銷服務(wù)發(fā)布新版Worker在消費(fèi)消息時(shí)先調(diào)了一個(gè)外部接口做數(shù)據(jù)補(bǔ)全接口超時(shí)導(dǎo)致大量消息處理超過(guò)30秒。Redis消費(fèi)組的空閑超時(shí)機(jī)制把這些消息判定為無(wú)人處理自動(dòng)分派給其他Worker其他Worker同樣卡在外部接口消息在消費(fèi)組里被反復(fù)認(rèn)領(lǐng)最終同一批任務(wù)被重復(fù)執(zhí)行了好幾輪數(shù)據(jù)庫(kù)里出現(xiàn)重復(fù)的優(yōu)惠券發(fā)放記錄?;貪L發(fā)布后我們亡羊補(bǔ)牢做了三件事給所有Worker的消費(fèi)邏輯加先落庫(kù)后補(bǔ)數(shù)據(jù)的調(diào)整外部依賴放在業(yè)務(wù)主鏈路之外。設(shè)置消費(fèi)處理超時(shí)上限超時(shí)統(tǒng)一快速失敗進(jìn)入重試而不是讓消息卡在pending里被自動(dòng)轉(zhuǎn)派。在消費(fèi)入口強(qiáng)制前置冪等檢查任何一條消息在執(zhí)行業(yè)務(wù)前必須先檢查冪等鍵是否已消費(fèi)成功。6.3 跨語(yǔ)言時(shí)間解析產(chǎn)生的幽靈任務(wù)第三次事故與多語(yǔ)言直接相關(guān)。某次跨大版本迭代我們把任務(wù)的schedule_time輸出格式從ISO時(shí)間字符串調(diào)整成了毫秒時(shí)間戳并按計(jì)劃讓各語(yǔ)言消費(fèi)端同步升級(jí)。結(jié)果Python和Go的消費(fèi)端都順利解析了新格式Node服務(wù)因?yàn)橐蕾嚨囊粋€(gè)內(nèi)部庫(kù)緩存了舊代碼解析毫秒時(shí)間戳?xí)r當(dāng)成秒級(jí)時(shí)間戳導(dǎo)致原本應(yīng)該延遲5分鐘的任務(wù)被延遲了11萬(wàn)分鐘排隊(duì)排到了三個(gè)月后。這種問(wèn)題的排查很折磨人因?yàn)樗腥蝿?wù)狀態(tài)都顯示未執(zhí)行但哪個(gè)隊(duì)列都看不到它們。避免再次發(fā)生我們把協(xié)議中所有時(shí)間字段統(tǒng)一為帶時(shí)區(qū)偏移的RFC3339字符串禁止毫秒時(shí)間戳裸傳同時(shí)在調(diào)度器入隊(duì)時(shí)主動(dòng)校驗(yàn)schedule_time與當(dāng)前時(shí)間之差如果延遲超過(guò)預(yù)設(shè)最大值比如90天直接攔截報(bào)錯(cuò)。這樣一來(lái)任何一端的解析異常都會(huì)被調(diào)度器拒之門(mén)外而不是變成幽靈任務(wù)潛伏在隊(duì)列深處。7. 給準(zhǔn)備做同樣重構(gòu)的人留一張Checklist如果你還沒(méi)開(kāi)始治理我建議按下面的順序走少走彎路先把異步任務(wù)盤(pán)點(diǎn)清楚哪條鏈路在誰(shuí)手里、什么語(yǔ)言、什么觸發(fā)方式、失敗率多少做一張任務(wù)清單。統(tǒng)一Envelope協(xié)議把時(shí)間格式、冪等鍵、版本號(hào)規(guī)則寫(xiě)進(jìn)團(tuán)隊(duì)異步任務(wù)規(guī)范先管消息再管隊(duì)列。選一個(gè)已具備多語(yǔ)言客戶端的隊(duì)列載體避免單獨(dú)引入高運(yùn)維成本的重型消息集群。獨(dú)立調(diào)度器收攏延遲任務(wù)投遞路徑每個(gè)語(yǔ)言只保留Worker和確認(rèn)邏輯。消費(fèi)端全部套統(tǒng)一SDK殼確認(rèn)、pending、超時(shí)、冪等鍵檢查全部由SDK承載業(yè)務(wù)代碼只管實(shí)現(xiàn)任務(wù)動(dòng)作。把DLQ和監(jiān)控指標(biāo)一次性做好不要等出了事故再補(bǔ)。最后說(shuō)一點(diǎn)個(gè)人體會(huì)多語(yǔ)言微服務(wù)架構(gòu)中的異步任務(wù)治理真正難的不是某一種語(yǔ)言的API怎么調(diào)而是讓所有語(yǔ)言團(tuán)隊(duì)在任務(wù)的語(yǔ)義上達(dá)成一致。技術(shù)選型、協(xié)議設(shè)計(jì)、邊界劃分這些事越早做出統(tǒng)一決策后面的坑就越少。我們當(dāng)時(shí)如果能把協(xié)議層和調(diào)度器的決策整整提前兩個(gè)月至少能少三次線上事故。祝你在動(dòng)工之前就能看到一個(gè)清晰的全景圖。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
欧美影音在线| 天天看少妇| 91 国产丝袜在线播放-百度| 丰满欧美少妇| 九九热超碰| 在线播放免费av福利片| 久久久久久久| 久热网| AV天堂丝袜| 国产理论视频在线播放| 亚洲不卡三级手机播放| 久夜操| 成人精品一区二区三区| 少妇蜜汁| 亚洲天堂男人在线| 色色婷婷五月| 九九色热| 99热99色| 亚洲一区日韩| 深田咏美亚洲精品福利社| 亚洲欧美在线观看免费| 国产精品久久aV| 大香蕉草草| 久操91视频| 97超碰欧美精品| 91丝袜在线视频| 亚洲免费精品一区| 国产精品电| 久久久久网站-538在线视频-欧美永久乱码 | 白嫩少妇| 久久久久久综合久久伊人蜜月| 日本五十路在线| 日韩乱码Av| 激情五月激情综合网| 亚洲五月婷| 99综合免费视频| 日韩一级特黄av毛片| 亚洲欧美一区二区网址| 无码一区二区精品视频久久久春药| 97免费在线观看| 亚洲色欧| 亚洲春色一区二区三区| 狠狠中文字幕| 黄色网址在线免费观看| 亚洲日韩美女中文字幕乱| 中文字幕中文字幕一区二区| 欧美日韩激情无码专区| 国产精品一区二区三区,亚洲综合| 亚洲精品国产专区在线观看| 岛国片国产成人亚洲播放| 岛国1区2区3区在线观看| 亚洲AV成人精品网站在AV| 久久久久久久久久va| 国产探花日韩援交| 无码精品久久久天天影视| 国产小黄片在线免费观看| 国产女生在线| 欧亚综合一卡二卡中文字幕| 日韩精品国模| 黄骗免费网站| 日本高清有码网址视频| 亚洲不卡AV在线| 久久成年精品| 久草精品在线| 日韩色| 狠狠综合| 国产欧洲精品亚洲午夜拍精品| 青青草玖玖爱| 日韩91网站| 亚洲成aⅴ人片不卡无码| 性在久久久久久| 欧美日韩精品久久| 91精品老女人| 日本精品无码三级网站| 99亚亚热| 亚州高清av| 超碰人妻久久| 国产麻豆福利av在线播放| 正在播放:深夜激情大战,自带黑丝袜全力输出骚穴 | 国产精品久久天天干| 亚洲av影音先锋| 日本熟妇一区二区三区| 久久AV色| 欧美国产精品| 欧美日韩国产电影| 一级黄色性爱A级片| 色香阁在线| 欧洲大香蕉| 亚洲一区日韩精品中文字幕| 91精品国产麻豆国产自产在| 久久鲁夜| 97色伦97色伦国产欧美| 亚洲黑丝在线| 农村少妇久久久久久久| 综合操逼| 午夜啊啊啊| 成人怡红院| 综合一区中亚洲国产成人综合精品| 性色一线| 26uuu最新| 97av在线视频| 啊啊啊轻点在线观看| 日韩三级伦理中文字幕| 久操视频免费在线观看| 久久九九97| 国产精品久久久久久久毛片1| 亚州伊人色综台| 亚洲清纯唯美| 二男一女成人A片| 精品人妻一区二区三区-国产| 国产精品3| 秋霞一级A片黄色视频| 色妹子A V| 亚洲女人91| 国产 丝袜 欧美中文 另类| 色九九九| 日韩精品一区二区日韩| 美女丝袜激情小说| a级理论午夜日本| 超碰综合97在线| 欧美性爱精品一区二区| 一区二区三区麻豆| 天天插天天插| 色牛牛AV| 91成人无码| 六月婷婷五月丁香| 欧美第二页| 97人亚洲综合字幕| 琪琪精品免费一区二区三区 | 午夜人人操| 裸体女人草逼视频播放一区,二区,三区,四区,五区| 亚洲全色网| 日韩中字av一区| 成年人黄色| 一区二区三区四区五区高清无码永久视频 | 国产无码久久高清| 日韩精品三级片长长久久| 天天日天天搞天天干| 亚欧中文字幕在线视频| 亚洲天堂无码| 欧美资源| 久久一区二区加油站| 人妻在线视频| 四虎国产精品永久在线囯在线| 女一区二区| 国产欧美日韩一区二区三区| 精品人妻高清麻豆av| 97色婷| 欧美色图91| 欧美最婬乱婬爆婬性视频| 国产精品久久久久久高清无码免费看| 超碰97久久国| 亚洲av在线免费观看| 欧美97| 天天做天天爱天天爽AV| 熟女人妇一区二区三区| 国产精品成人AV片免费看网站| 九九九久久久久| 国产精品视频白浆免费| 丰满人妻区一区二区三| 级品肉射| 亚洲情色五月天 | 97超碰色屌| 爱做久久久久久| 中文字幕国产在线天堂| 久久久精品一区二区| 99热这里是精品| 中文字幕五月婷婷免费| 少妇天堂| a人片中文字幕一区二区| 中文字幕精品区先锋资源| 午夜精品久久一区二区| 干美女人妻| 欧洲综合色图| 蜜桃狠狠色伊人亚洲综合| 天天日天天舔天天喷天天射| 色欲蜜臀AV| 欧美成年人性爱视频免费观看| 欧美偷偷网| 日韩av熟女一区二区三区成人| 精品人人插人人操| 日韩中文字幕人妻视频| 沈阳熟女高潮对白视频| 男女国产精品| 亚州五月| 亚洲系列欧美| 天天影视射综合网| 一牛影视久久久一区二区三区| 中文字幕精品区先锋资源| 久热在线精品免费观看| 亚洲春色一区二区三区| 国产91 丝袜在线播放00-百度| 国产乱不卡| 天天日美女的B| 中文字幕、久久精品国产2020、久久综合久久自在自线精品自、亚洲 | 久久久一区二区三区三州| 国产精品96久久久久久| 亚洲精品少妇| 2017天天插| 99热在线播放| 亚洲欧美人妻| 伊人专区一区二区三区| 日本人妻中文字幕精品| 中文字幕在线观看永久| 精品国产91av一区二区三区| 午夜精品久久久久久久99蜜桃一| 四虎影视永久在线免费| 美国一区二区三区视频| 久久久亚洲Av| 日本免费中文字幕在线| 日韩性爱高清免费视频| 人妻少妇色综合| 91大学精品激情戏| 超碰97男人| 91殴美大片| 操逼精品视频| 欧美久久人体| 四虎精品一区二区| 日韩精品在线放| 无码精品久久| 亚洲日本成人动漫| 四虎AV无码| 性色av一区二区| 后入式视频国产自| 欧美在线天堂| 亚洲伊人a线观看视频| 亚洲成a人在线观看久| 中文字幕精品区先锋资源| 亚洲日韩成人性爱视频| 狠狠色综合网| 大香蕉伊在线久草麻豆天堂故事| 少妇色综合| 亚洲自拍小说| 亚洲 欧美 精品专区 极品| 久久98| 爱爱动态120秒| 国产精品视频电影| 日本久久999| 91精品91久久久中77777| 97色97干| 国产操偷| 动漫片子网站3黄| 欧美人妻中出| 欧美日韩久久精品爱爱| 日韩欧美俄罗斯A片| 日本在线不卡一二区| 日韩天堂av电影在线观看| 国产精品suv一区| 9 1果冻精品视频| 黄色免费网| 毛片电影一区二区三区| 成人天天爽| 亚洲网站一区二区在线| 欧美日韩国产色图在线| 自拍欧美| 亚洲欧美日韩制服另类| 婷婷在线视频| 中文熟女五十乱码在线| 成人一道本免费视频| 免费一级毛片在线视频观看| 亚州色图狠狠干| 人妻第一页| 再深点灬舒服灬太大了添视频| 亚洲 综合 欧美| 2026国产精品视频| 9国产超碰| 亚洲五月丁香花狠狠干一区二区三区| 亚洲精品 欧美精品| 999久久久九九九九| a一区二区三区乱码在线| 国产免费一区二区三区最新不卡 | 国产一区二区三区视频在线看| 欧洲色| 黑人粗大V S日韩女优视频| A 天堂| 亚洲激情网一二三四区| 久久久999国产| 国产女人和拘做爰视频| 欧美 亚洲 另类 综合| 一级二级三级黑人无码| 中文字幕日韩精品一区二区三区| 偷拍 欧美 日韩| 人妻天天夜夜爽一区二区| 久久成人东京热人妻| av在线一区二区三区| 熟女天天干| 精品亚洲| 97国伦国色| av影片在线观看不卡| 蜜臀久久99精品久久久老,,| 欧美日韩精品久久久久久久久东北老熟妇| 亚洲国产激情国产av| 久久 久久国内精品亚洲| 91丨九色丨国产丨人妻在线| 狠插 制服 自拍| 在线中文字幕| 天天综合网在线| 中文字幕,人妻,日韩| 宗合情欲网| av毛片aaaaa免费看| 台欧久久精品视频| 国语国产操逼伊人AV网| 国产一区二区在线看| 亚洲一二三四区机械| 99啪啪| 91久热这里只有精品| 6080YYY午夜理论片在线观看| 东京热一区二区中文字幕| 国产精品青青草| 国产18精品亚洲精品| 日韩八十路老熟女| 九九热AV| 精品人妻av区天天看片| 蜜桃视频精品一区二区三区| 国产又色又粗又黄又爽| 国产十八禁视频| 青娱乐国产精品| 中日韩久久久免费看| 男女一级A片大黄,一进一出| 欧美色狠| 狠狠操狠狠燥| 亚洲精品男人的天堂| 超碰色综合| 岛国人妻少妇av在线观看| 国产黄片在线免费观看| 思思热一热婷婷热一热| 另类图片天天影视| 日韩ab网| 日韩啪啪啪啪啪| 亚洲无码成人精品| 久啪视频| 高清肉丝中文无码| 中文字幕五区| 综合 欧美 亚洲 日本| 亚洲综合色图欧美| 成人综合网 欧美| 秋霞曰韩R级| 精品人妻一区二区三区在线视频不卡| 日韩噜噜69| 精品人体无圣光凹凸| 久久一二三四五六七八九区| 欧美天天综| 91精品丝袜在线观看| 无码精品久久久久久亚洲| 日本最新1区2区3区| 男人的天堂亚洲| 深夜国产一区二区三区在线看| 欧美色图电影| 欧美亚洲韩国视频十五区| 热久久91婷婷| 五月色丁香| 国产熟女完整版中字| 91宗合网| 亚洲熟女人妻中文字幕一区二区| 伊人久久亚洲色欲综合网站 | 99精品在线观看| 亚洲国产精品9999在线观看| 嗯嗯啊好爽| 欧美图片色五月天| 久久久久久久久久久久久久久久9| 五月天开心网| 久久精视频美日韩在线视频| 91精品女厕偷拍视频| 极品色| 亚洲欧美综合图片| 狠狠躁久久躁| 日韩成人人妻网站| 亚洲人精品午夜不卡| 性色av一区二区| 国产传媒美日韩av| www.AV有限公司一区| 射丝袜高跟鞋99| 中文高清一区二区的| 成人婷婷丁香| 欧洲天天在线| 人妻天天爽夜夜爽精品2| 日本大片日本一区二区免费高清| 成年女人18级毛片毛片免费观看| 欧美,日韩,亚洲视频| 亚洲古典另类欧美在线| 成人性爱美曰韩| 国产99久久99热这里只有精品15| 99热99re超碰精品| 精品人妻二区三区| 97久久精品亚洲中六字幕| 亚洲欧洲小说图片视频 | 综合色久欲| 大香蕉伊然在亚洲91| 亚洲。天堂。日本在线观看| 精品综合久久久久久97| 人妻夜爽夜夜爽| 久久久极品| 精品天堂| 国产精品分类在线观看| 天天看天天在线精品| 操逼操逼视频操逼| 丁香激情五月天| 不卡人妻少妇精品毛片一区23区视频| 亚洲精品丝袜| 91 综合 色| 精品丰满熟妇人妻一区| 野狼福利社区| 国产色综合亚洲色综合吹潮| 51一区二区三区| 日韩性爱高清免费视频| 熟女丝袜视频| 色香综合天天影视综合 | 麻豆天美一区二区| 久久性生大片免费观看性| 天天激情综合站| 国产92麻豆天美精品色欲5| 97人人模人人爽人人| 久久超碰爱| 亚洲永久永久永久永久一级一级一级精品 | 性色一线| 天天综合网~91入口| 四虎av在线| 日韩成人精品| 超碰在线人妻| 日韩欧美偷拍美女视频| 精品美女少妇一区二区| 国产视频一区二区三区在线免费观看| 婷婷亚洲天堂| 久久久成人精品| 超碰在线一区二区三区| 午夜操逼不卡| 偷拍网站久久男女男| 国产第11页| 国产精品久久久| 91动漫操逼视频| 蜜臀精品1区2区| 人人操人人精品影片| 国产婷婷综合在线观看| 91人妻Pr| 一区二区亚州激情久婷婷欧美| 嗯嗯啊啊啊好爽| 2021久久国产综合精品青草| 天天综合网91入口| 国产免费小视频| 亚洲一级性爱视频免费看| 欧美 亚洲 综合 制服| 青草伊人久久| 亚洲国产尤物yw在线观看| 999狠狠综合| 日韩精品亚洲一二三| 永久免费av无码网站国产app| av中文在线| 欧美亚洲清纯| 国产超碰人人爽人人做| 日日噜噜夜夜久久亚洲一区二区| 26uuu偷拍亚洲欧洲综合| 色性荡荡荡荡视频| 99热这里只有精品18| 亚洲一区中文字幕一区| julia ann久久| 不卡一区二区日本视频 | ,国产乱人伦精品一区二区三区| 丝袜亚洲91| 精品久久久久久AV无码| 国产亚卅97| 97亚洲综合影院| 日本三级中国三级99人妇网站| 欧美淫乱视频| 日韩操人| 男人天堂2017| 蜜臀亚洲中文| 欧美性爱无码一区二区三区| 熟女欧美日韩综合婷婷| 欧美性生活免费网| 精品性爱久久视频| 欧美日本国产日韩激情视频| 亚洲精品白丝| 操逼网站地址| 97亚洲中文| 少妇 综合| 久久精品国产亚洲AV先锋| 精品区9| 亚洲美女AV无码| 四月丁香婷婷| 日本熟女免费視颖| 黄站在线免费观看| 欧美日韩成人| 精品一级毛片在线观看| 美骚妇av高清在线| 把腿张开老子CAO烂你| 天天操熟妇| 色婷婷久久| 一区二区三区国产在线播放| 九九久久一区二区三区| 777AV电影| 亚洲人码13| 超碰在线国产| 国产精品露脸在线观看| 性九九九九九九| 国产精品电影| 乱伦熟女专区| 超碰综合97在线| 天天干一干| 92性色国产午夜福利在线661| 中 文字幕一区二区三四 五 区日 日 骚| 成人精品一区二区91毛片不卡| 亚洲青青草| 午夜精品久久久久久久男人的天堂 | 国产一级不卡在线观看| 97日亚洲欧美| 国产精品久久久九九九| 99在线免费视频| 超碰97人妻免费在线| 中出在线视频| 免费看污网站| 激情五月天色色网| 久久日韩精品一区二区| 九久久精| 日日摸日日碰| 超碰 另类 欧美 | 亚洲无码久久久久久久| 家庭乱伦麻豆| 亚洲天天自拍| 老鸭窝黄色视频网站| 亚洲综合色网| 婷婷中文网| 亚洲一区操| 人妻欧美| 超碰97极品9| 天堂伊人久久| 91最新综合| 热久久这里只有精品| 色黄色美女大长腿午夜视频| 激情综合网激情综合| 欧美 日韩 亚洲 春色| 欧美精品黑人猛交高潮| 男人的天堂三级| 97AV在线免费观看| 亚州成人A√| 九九热在线视频| 欧美成va视频网站| 97摸视频| 亚欧成人中文字幕一区| 思思热久久成人| 国产丝袜美女在线一区| 美女91网站| 97狠狠| 欧美美女视频| 大香久久| 啊啊啊久久| 香蕉精品二区二区| 国产又粗又长又大的视频| 熟女91网| 国产AB视频| 久久久9 9 9精品| 啊啊啊啊啊好舒服视频| 97就爱干| 性色高清..……| 91碰碰| 亚洲综合草草| 色噜噜人妻av中文字幕| 69久久| 易易A毛视频| 台湾佬大香蕉| 超碰地址久久| 大香蕉一级黄色片久久| 国产精品美女久久久久久网站| 狠狠操狠狠操操| 国产成人在线观看网址| 一本色道无码DVD中文字幕| 91人妻人人澡人人爽人人精品| 久久精品国产亚洲AV先锋| 黄片视频观看| 免费看黄视频亚洲网站| 激情视屏国产乱伦强奸| 五月天大香蕉| 色老汉色| 欧美青青草视频| 欧美综合综合| 超碰成人人人爽人人爽| 国产精品视频麻豆入口| 91GD.COM| 天堂日本亚洲欧美| 亚洲男人的天堂网| aV中文麻| 国产一区二区成人av在线播放| A一区片| 无码抄逼网| 99re6久热只有精品6在线直播| 一区二区三区日韩欧美| 另类专区加勒比| 夜夜爽夜夜操| 成全在线观看免费观看| 狠狠色色| 98精品国产乱码久久久久久| 日日夜夜骑| 天天干天天舔| 99精品热| 综合av影片| 精品国产乱码久久久A| 国产丝袜欧美在线视频| 国产精品一区二区黄片| 中文字幕制服欧美久久一区| 91男人综合| 亚洲精品国语在线播放| 国产精品亚洲一区二区三区四区| 男人的天堂在线2| 操逼短片| 国产亚洲深夜激情| 三级三级三级日本99| 级品肉射| 国产高清自拍视频| 91站街按摩店老熟女熟女| av在线人气| 9I1性色影院| 韩日性爱av| 九一综合精品视品av| 久久久神马影院| 夜夜操美女| 天天综合网国产| 欧美色图自拍| 久草视频在线视频在线视频在线观看| 91大神电影天堂| 综合色区偷拍| 欧美视频边做饭边橾| 黄色不卡视频| 婷婷天堂站| 1204av韩国| 成 人 A V免费视频在线观看| 婷色五月天| 天堂av最新电影网| 成人免费福利在线观看| 91精品国久久久久久无码| 热99这里有精品综合久久 | 静品嫩模一区二区| 加勒比av官网在线| 亚洲成人免费中文字幕| 97青娱乐超碰久久| 人人操 欧美| 中文字幕 一区二区 亚洲无码| 欧美成人精品欧美一级乱黄一区二…| 91精品无码人妻系列| 99热8| 顶级丝袜熟女一区二区三区| 亚洲日韩久久精品一区| 亚洲av综合色| 超碰这里有精品| 思思热影视| 中文字幕人乱码中文字的预防方法 | 五月婷婷综合在线| 亚欧美色| 成 人 影视 一区 二区 三区 四区| 亚洲久9| 懂色AV一区二区三区| 91熟女丨91老女人| 欧美极品女人的天堂| 精品69网| 白丝1区2区3区| 欧美日韩大香蕉| 中文字幕-区二区三区四区视频中国| 98人妻精品一区二区色欲| 大香蕉在线86| 美女午夜福利免费视频| 久久风骚城市| 久久精品国产精品亚洲艾通辽熟妇 | 黄色片,com| 日韩97精| 99国产人成精品| 91色图| 18岁禁 茉莉成人久久| 手机在线播放国产福利| 欧美女同在线| 床上啊啊啊一区二区三区| 国产强奸乱伦第1页| 婷婷情色五月天| 嫩草一区二区在线观看| 天堂网亚洲区手机版| 国产精品久久久亚洲一区| 欧美福利视频啊啊啊啊| 欧美性综合| 97色婷婷| ji熟女.com| 日韩青久久| 九九九网页| 亚洲色 国产 欧美 日韩| 中文有码9| 久久久中文版| 综合色久| 天天干天天燥| 舔足天天操天天射| 激情视频一二三| 天天日天天操心| 亚洲天堂中文字| 久久女人| 国产成人精品一区| 日本精品人妻少妇一区二区| 久久久无码av精| 97超碰碰| 中出91视频| 欧美中字二区| 久久久久久久久久久六六| 欧美亚洲色图另类国产| 久久精品店| 福利大香蕉| 日韩av熟女一区二区三区成人| 国产女生在线| 日日插夜夜| 加勒比综合| 亚洲精品97p| 亚洲吊色| 欧美se亚洲| 公司1区2区3区精产精| AV中文在线可看| 欧美刺激色黄片免费看| 国产又黄又粗的视频| 97精品网| 天天欧美| 亚洲第一男人天堂| 91国精产品| 在线黄色污污网站| 午夜天天碰综合视频| 色婷婷久久| 97摸视频| 国产剧情AV不卡在线观看| 久久久久亚洲三级电影| 麻豆天美传媒毛片| 欧美色图 色综合图| 插插综合网天天影视网| 超碰碰小说97| 污电影在线观看| 日韩中文字幕2020| 亚洲中文电影| 精品一区二区三区四区女 | 国产精品一区二区久久精品| 精品无码一区二区三区色欲| 亚洲欧美另类图片| 91精品国产一区三一| 美女91AV| 国产精品香蕉| 人人操欧美风骚| 曰韩人妻中文字幕在线| 日日骚AV| 亚洲欧美成人网站AAA| 97干色| 蜜臀一区二区三区在线| 97无码视频在线播放| 2024年最新色情网站在线观看| 高潮精品| 香蕉国产精品麻豆亚洲欧美日韩| 最新日本中文字幕| 一区二区精品日韩欧美在线观看 | 欧美少妇高潮久久91| 91爰爱欧美| 日本孕妇孕交| 亚洲清纯综合| 国产日本一区二区三区蜜臀在线观看| 久久91| 偷拍三区| WWW黄片COM| 丁香五月成人| 婷婷成人久久久精品| 欧美高清性猛交| 久久人爽| 嗯嗯不要 视频| 欧美一二三| 一区二区免费电影久久| 夜夜影视四色| 三级三级三级日本99| 人妻密肉在线观看| 9999久久久久| 欧美偷拍| 亚洲激情在线观看一区| 欧美精品1区2区3区| 日本狠狠干| 九热大香蕉| 国产午夜福利合集| 亚洲色图欧美一区二区不卡| 人妻一二三区| 99免费在线视频| 蜜臀99999| 欧美性第1页| 啪啪性爱免费视频| 国产精品亚洲免费| 亚洲三级网址久久最新| 亚洲自拍小说| 精品国产无码中文| 天天日天天爽| 日韩欧美中文字| 一区二区三| 户外裸露刺激视频第一区| 日本曲间由美性生活片| 四虎在线免费视频| 乱伦熟妇一区二区| 五月丁香激情综合| 亚洲91网站| 玖草在线视频| 日本福利二区视频| 久久伊人青青草| 超碰九7| 亚洲黄网在哪免费看| 欧美熟妇人体| 大奶的诱惑| 黄色性爱网网| 99色婷婷中文字幕乱色| 青青久久艹| 午夜福利视频在线一区| 日本999精品视频| 玖玖综合网| 亚洲黄网在哪免费看| 91高跟美女在线播放| 淫荡网址| 久久久中文| 亚洲乱码精品一区二区| 亚洲天堂男| 黄站在线免费观看| 国产亚洲深夜激情| 日韩精品99999| 97er欧美性| 日韩免费在线观看不卡| 91精品综合久久久久久五月丁香| 欧美 亚洲 综合 制服 另类| 蜜臀无码视频在线观看| 色99视频| 久久宗合97| 婷婷丁香五月天综合东京热| 四季AV一区二区凹凸精品小说| 爱爱啊啊啊| 亚洲精品男人的天堂| 四虎精品亚洲| 国产小u女在线观看| 女人的天堂大香蕉网| 欧美精品23| 91新在线欧美| 国产真乱mangent| 天天操av懂色| av网站免费看| 蜜臀av中字字幕网站| 久草新在线| 久久麻豆一区二区| 久九九九| 夫妻四区五区六区| 亚洲se91| 久久9视频| 天天操天天日天天干| 在线免费观看日韩一区| 97一本大道亚洲一区| 影音先锋视频在线| 欲色啪| xxxx网站亚洲精品| 骚逼自拍99| 91九色在线| 特色a在线上| 人人澡人人爽人人精品| 亚洲欧洲自拍图片专区满春格| 亚洲天堂第一页| 欧美综合娱乐久久| 欧美,亚洲,日韩,v,天堂,手机在线观看| 日本五十路熟女一区二区| 欧美在线第五页| 9久热| 成人国产视频在线观看| 男生女生啊啊啊啊| 亚洲天堂7777| 欧美日韩亚洲天堂| 色婷婷aV一区二区三区麻豆综合| 激情黄色片在线观看| 天堂资源站| 五月婷婷久久综合| 人人弄人人摸| 任你干在线视频| 日韩中文欧美| a片在线播放| 久久精品中文字幕女同| 免费精品99| 国产成人拍国产亚洲精品| ...日韩成人一区二区三区字幕| 大香蕉丝袜一级片| 欧美欧美啪啪视频| 综合天天。| 亚洲18禁| 家庭乱伦网站国产| 密臀在线一区尤物| 春色校园综合网| 日韩免费大片一级播放| 97操97干| 99 国产丝袜在线| 色噜噜人妻丝袜a∨先锋影 | 四虎影视永久在线免费| 日日躁夜夜躁狠狠躁超爽| 伊人久久大香蕉线AV五月天| 一区在线观看中文字幕| 国产福利精品98视频| 欧美一二级| 亚洲综合网图| 久综合网| 国产精品久久99日日| 99re超碰| 亚洲天堂久| 躁躁日曰躁2020| 免费观看欧美日韩操逼视频| www.伪伪| 日韩精品中文字幕人妻| 亚洲综合色图欧美| 激情综合av| 少妇蜜汁| 欧美激情综合| 福利伊人玖玖国产| 欧美大香蕉久| 欧美色涩| 99夜夜操| 超碰97.com| 另类视频在线| 伊人青青草久久| 国产欧美一区二区| 丁香五月色| 综合一区中亚洲国产成人综合精品| gogogo免费高清看中国国语| 97亚洲综合| 色香av| 精品丰满熟妇人妻一区| 大香蕉综合在线| 磁力99AV| 加勒比日本在线| 色天使大香蕉| 免费看污网站| 日韩一区二区熟女| 欧美亚洲国内自拍| 蜜臀av在线播放一区二区三区| 久草大| 丁香五月天激情网站| 国产精品一区二区三区,亚洲综合 性开放中文AV高清无码免费看 | 精品国产乱码久久久影院| 久久原创中文| 久久久精品中文字幕麻豆| 色哟哟1区2区| 97网址97| 91欧美巨乳| 欧美综合传媒| 欧美色吧综合| 啪啪啪男女亚洲中文字幕99| 久久中文字幕人妻熟av女蜜柚| 久久久久久裸体| 91人妻久久久久久久久久久久久| 小明看看网址| 欧美日韩国产人人| 国产精品色约约| 久肏视频字幕| 久久精品无码专区| 加勒比海色香蕉婷婷| 91人妻少妇| 亚洲无码精品AV久久久| ,成人免费啪啪视频| 6080YYY午夜理论片在线观看| 福利社区午夜一区二区| 成人免费福利在线观看| 色色色999| 九色97| 五月天伊人| 神马久久69| 拍拍拍拍大尺度黄色三级片拍拍拍拍拍照| 97综合久第一页| 亚洲高清欧美总合| 插入逼91| 精品国产人成在线| 五月天色色色| 日欧美色| 欧美熟女逼久久久久久| 超碰99在线| 色色色综合网| 日本一二区免费| 久草精品一区 | 亚洲一卡2卡3卡4卡乱码网站 | 99青青草国产视频| 操老熟女AV| 日韩啪啪视频| 无码丰满熟妇一区二区浪潮AV| 成人性爱全视频观看| 男人的天堂亚洲| 磁力99AV| 国产精品在线免费| AV一区观看| 久久婷婷五月综合| 欧美狠狠鲁| 加勒比色99999| 久久草草亚洲蜜桃臀| 人人天天干干| 日韩AV一区二区三区三州三州| 国产1727欧美| 天久久久噜噜噜久久国产精品爽爽 | 亚洲天堂 视频你懂的| 久久久9视频| 亚洲青青草| 无码不卡亚洲成?人片| 国产激情在线| 亚洲一二三精品久久网| 白嫩白嫩的午夜九久久久久久久久久久久成人剧场 | 久草免费福利在线播放| 日韩在线76| 久久久草草精品| 精品久久久久久AV无码| 五月天大香蕉| 亚洲999综合| 视频一区二区免费在线| 综合久久中文字幕综合日韩精品| 另类av天堂| 久久 精品| 天天精品| 日韩欧美中文字| 日韩激情电影中文字幕 | 国产女人视频三四五区| 国产无码一二三区| 亚洲 欧美 另类 日韩 人妻一区| 后入国产| 综合激情婷婷| 蜜桃视频啊啊啊啊| 69少妇一区二区| 江都AV在线| 91成人无码| 国产精品老师| 久久久久久久久久久久久女过产乱-少妇高潮一区二区三区喷水-成人AV | 好吊色综合| 久久九九网| 色综合1991| 久久激情亚洲精品无码?V| 色诱avtt| 欧美成年人性爱视频免费观看| 人妻激情偷乱视频一区二区三区 | 亚洲91少妇| 麻豆av一区二区| 日韩精品中文字幕二区| 日本三级韩国三级美三级91| 亚洲阿v天堂无码z2018| 天堂国产AV| 啪啪性爱免费视频| 爽爽歪在线视频| 91综合中文字幕| 亚洲综合小说另类图欧美视频激情小说色五月天 | 久草在线| 欧美色偷拍| 一区二区乱码福利| 三级片大波波| 日韩欧美福利视频看看| 午夜精品久久久99| 午夜a成v人电影| 久久久久ab| 成人亚欧免费视频| 欧美亚洲国产日本在线,久久精品国产| 操婢日韩| 欧洲精品一二三在线| 91快色色色色色| 美女91av| 日本午夜精品理论片A级APP发布| 很狠操| 婷婷综合激情| 婷婷久月| 久久久99久9| 中文字幕精品一区欧美| 97超碰精品成| 超碰成人免费| 日韩精品人妻| 97超碰热线| av日韩国产一区二区| 一区二区三区在线日韩影院观看| 免费毛片在线播放| 亚洲风情在线观看| 骚乳在线| 天天操天天干一区二区| 精品女同一区| 3571色综合一区二区二区| 午夜舔阴达高潮视频免费看| 青青青青草av在线观看| 国产色精品午夜大片| 伊人欧美大香蕉视频| 欧美日不卡| 日日噜噜夜夜狠狠视频无| 欧美淫乱视频| 国产欧美日韩在线观看麻豆传媒公司 | 911粉嫩人妻| 日本不卡五区| 伊人网在线视频| 九九久久精品| 九九精品无码专区免费| 东京热伊久| 精品国产污一区二区三区| 乱伦AVxx| 毛片一区二区| 中文字幕免费看| 久无码| 伊人久操| 91精品国产91久久青草| 无码男人天堂| 国产亚洲人妻综合日韩 久久| AA级电影三区| 男人天堂毛片| www.99热在线只有精品| 久久曰曰| 北约熟女超碰| 四虎精品一区二区| 99精品高潮| 中文字幕精品丝袜| AV综合中文字幕干| 精品成人无码| 屁股久久久久久久久久| 蜜桃臀一区二区aV| 欧色综合| 综合色久| 亚熟hd视频在线| 大香蕉av在线| 国产精品无码av在线| 欧美亚洲综合高清在线| 97操综合| 久久一二三四不卡| 91在线欧色| 欧美在线干| 天天视频黄网站| 午夜福利1区2区3区| 999精品乱码| 快播久久人人aV| 免费超碰97久久| 啊啊啊啊啊啊好湿好爽视频| 屌色在线97视频| 强奸乱亚洲| 国产精品一级毛片不卡视| 一级性爱视频免费在线| 人妻丝袜一区二区三区在线| 精品一区99999| 亚洲美女 晚间男人天堂 | 99re免费| 600国产精品视频| 啊啊啊啊,啊啊好多水| 欧美国产操逼| 小草av不卡亚洲二区| 屌妞视频久久久久久久久久久久| 97亚洲综合电影| 亚洲男人天堂2019| 五月天激情小说网| 另类在线| 婷婷五月天av| 婷婷五月天色色| 99热最新网址| 大香蕉伊人久久| 六月丁香网| 综合色图区| 国产视频三区四区| 国产精品久久久视频| 日韩美女久久一区二区三区| 老色69| 超碰 另类 欧美 | 日逼国产| 搡老熟女老女人老熟妇免费视频| 国产树林里野战在线看| 久久久麻豆精品| www.av在线观看| 女人爽到高潮潮喷18禁网站| 曰韩无码777| 一区二区 韩日AV| 91亚·色| 久久精品72| 亚州综合图片| 亚洲 无码 有码 中文字幕| 福利天天都操| 97碰碰色| 亚洲高清视频在线免费观看| 国产日韩手机视频在线| 伊人久久综合影院|