亚洲有码Av一区二区三区_国产高清啪啪免费视频_69色视频国产_国产成人人人爆出白浆_国产精品自在线拍国_一本久久伊人热热精品无码_午夜性刺激在线看免费带字幕_助力高品质欧美狂喷水_亚洲精品日韩无码_精品无码一区二区三区蜜臀_麻豆高清国产AV_熟妇人素无码中文字幕_亚洲a级片在线观看_国产欧美日韩三区_99国产成人高清在线观看

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ù)盤都寫(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é)果一盤點(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ì)列是拍腦袋決定的熱門就上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ú)引入一套需要專門維護(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ī)模、磁盤、分區(qū)都要管數(shù)據(jù)積壓處理受限內(nèi)存/磁盤配置需要設(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拋異常或超時(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)有專門設(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由專門的運(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ù)盤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)度器拒之門外而不是變成幽靈任務(wù)潛伏在隊(duì)列深處。7. 給準(zhǔn)備做同樣重構(gòu)的人留一張Checklist如果你還沒(méi)開(kāi)始治理我建議按下面的順序走少走彎路先把異步任務(wù)盤點(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
返回資訊列表
天天草夜夜草高潮片| 果冻传媒A片一二三区| 国产精品无码成人精品| 超碰吊日色| 德国一二三不卡| 欧美成人一区二区三区在线播放| 欧美天天弄| 久久r精品| 亚洲 图片 综合91| 黄片直播三级黄片两女一男| 淫荡少妇免费| 台湾一区国产高清在线| 日韩日韩日韩-国产乱码精品一区二区| 91天堂视频| 黑丝少妇| 日本黄 R色 成 人网站| 日本一级婬片试看三分钟| 啊啊啊啊啊在线| 91国精产品| 有码人妻系列| 久草久热| 久久国产精品一级二级三级| 天天爽夜夜操| 大香蕉久久| 国产视频一区二区免费| 日本久久精品| 日本 欧美 国产一区| 日本性爱欧美性爱| 色欲三区| 国产亚洲精品无码三区| 欧美一区二区三区入口| 不卡中文字幕aⅴ在线| 在线中文字幕视频| 九九AV| JuliaAnn丝袜熟女系列| 麻豆天美一区二区| 伊人久久综合影院精品久久久 | 中国操逼无码| www.99中文字幕| 八戒午夜福利理论片| 神马久久久久| 最新日日夜夜天天干干| 国产亚洲精品激情| 免费啪啪一级视频| 婷婷丁香六月| 91色综| 欧美性天天影视| 天天干天天干天天| 日韩天堂av电影在线观看| 亚码激情| 91久久18禁| 欧美日韩少妇色情| 久久久三区二区一区| 蜜汁欧美| 91色图| 一中国女人毛片水真多| 亚洲天天做日日做天天谢日日| 日韩熟女操逼| 激情网色| 久久丁香五月天| 99亚洲精品| 91九久| 亚洲精品天天影视综合网 | 色妺妺在线视频| 欧美躁死她一区二区| 强奸少妇AV导航网| 极品后入免费视频| yiqicaoav| 中文字幕黄片在线| 九九在线精品| 97超视频在线观看| 精品对白久久不卡| 欧美性爱日韩性爱| 丝袜夫妻自拍| 欧美日韩系列| 欧美日韩午夜精品一区二区三区 | 亚洲天堂日本| 午夜精品久久久久久久久久久久久 | 高清不卡 中文 人妻| 亚洲猛交| 夜夜影视四色| 伊人综合色网| 伊人欧美大香蕉视频| 国产色产精品在线观看 | 好吊色一区| 香蕉av一区二区三区| 9精品久久久久| 婷婷色色五月天福利| 日韩乱伦影音先锋| 国产丰满少妇久久久精品影院| 日本一级不卡一二区| 亚洲国产97| 日韩精品黄片免费观看| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区老师 | 国产精品老师| 2019午夜福利视频| 久久成年片色大黄全免费网站| 亚州AV无码国产精品| 丰满欧美少妇| 成年在线视频日本亚洲在线视频区精品江靖宇公司 | 性久久| 久久99黄色卞西瓜| 亚洲有码视频二区| 亚州色交| 欧美性爱综合,免费| 婷婷综合在线| 国产91丝袜 在线播放| 午夜福利精品| 97精品综合久久网| 午夜福利1区2区3区| 五月丁香六月婷综合成人综合 | 国产精品视频一区二区三区八戒| 99黄页网站| 欧美v日韩v亚洲v最新在线| 热99这里只有精品| 97精品在线| 国产精品成人无码a v毛片| 青青草视频久久| 综合网亚洲1| 欧美极品性爱天天射| 亚洲美女30b| 2020久久免费视频| 久久伊人在线五区| 国产一级高跟丝袜| 超碰中文字幕人妻草一区| 人妻少妇久久中文字幕一区二区 麻豆| 国产精品久久伊人| 啊啊啊啊好疼| 好看的91视频| 自拍偷拍 高清无码| 国产精品久久久久久久久久久久久久久久久久| 操逼不卡中文字幕| 久久骚| 国模无码一区二区三区在线| 男人天堂毛片| 屌逼传媒| 老熟女搡BBBB搡BBBB视频| 顶级少妇BT天堂| а√天堂资源官网在线资源| 天天操人人操骚逼网站| 91在线视频免费播放| 无码久| 欧美日韩香蕉| 婷婷超| 综合 青草 伊久久 影院 综合 | 欧美中字二区| 性爱乱伦一区| 久久超碰com| 五月综合久久| 亚洲无码AV九九九| 黄页| 亚州中文字幕超碰97| 日韩欧美大力操| 偷拍片久久| 亚洲中文字母在线播放| 久久超碰网| 日韩精品9999| 99综合网| 国产传媒午夜理伦精品| 久久禁| 91丨国产丨白浆| 日韩在线一区高清在线| 超碰97欧美| 大香蕉综合久久| av天堂手机版追回| 黑人娇小av在线播放| 久久国产视频性吧| 久久这里都是精品| 在线观看日韩av不卡| 精品久久視頻在线| 亚洲欧洲无码bt精品合集| 91丝袜在线视频| 激情色色| 日本精品无码三级网站| 久草加勒比一区在线| 亚洲永久AV无码精品秋霞| 丁香六月婷婷综合| 国产宅男宅女在线观看| 精品对白久久不卡| 我爱操| 亚洲综合性感在线| 啊嗯好大视频在线观看| 青青草天天亲夜夜操网| 亚洲第一精品在线视频| 久久久亚洲| 蜜臀va69| 亚洲综合网91| 国产精品视屏| 青青青青青手机视频| 天天夜夜久久| 97色论| 亚州少妇| 夜夜操二区| 亚洲 国产 精品一区| 久久精品一区二区三区四区五区| 殴美色网| 天天日骚逼熟女| 天天内射| 色婷婷久久综合超碰| 人妻插插人妻人| 欧美在线官网| 69精品在线| 99热最新网址| 99热在线观看| 久久综合婷婷| 这里是精品| 人人摸人人干| 99国产人成精品| 97综合在线| 乱伦av国产| 成人七区| WWW黄片COM| 91三级理论片播放器| 久久精品国产AV一区二区三区| 啊啊啊啊啊啊啊啊视频| 毛片一区二区| 国产黄色剧情影片麻豆免费播放| 网站A V在线| 国产亚洲深夜激情| 秋霞成人一级在线观看| 97人人操人人摸人人爱| 青娱乐日韩无码| 亚洲操人| 亚洲情色1区| 日本精品性生活久久久| 中日992视频| 久久精品国产97欧美精品亚洲 | 超碰人妻中文在线| 97精品在线| 亚州九九九精品视频| 欧美国产有色电影| 一区二区三区四区在线不卡| 97亚洲精品| 超碰在线欧美性爱激情| 性做久久久久久免费观看软件| 综合欧美日本三级| 另类图片五月| 精品人妻无码一区二区三区不卡-精品人妻无码一区二区...|精品少妇一区二区三 | 秋霞网—男女啪啪亚洲免费体验区| 香蕉黄色一级视频| 把腿张开老子CAO烂你| 99热精品在线观看| 春色校园综合网| 九九九九九九九九九五码| 后入日本1234| 性色AV蜜色av色欲av| 十八禁av无码免费网站APP| 久久精品国产亚洲AV高级北京| 午夜男女爽爽爽在线视频| 超碰AV在线| 日本一片一区| 91操熟女视频| 最新亚洲人成网站在线影院| 乱老女人一区二区视频| 男人天堂久久日韩| 精品少妇99| 超碰97人妻免费在线| 欧美一级黄色18片免费看| 亚洲综合网电影91| 999久久芭蕾| 国产偷人伦激情在线观看| 久操网线| 91夜夜蜜桃臀1区2区3区| 亚欧操逼片在线观看 | 午夜无遮挡男女啪啪视频| 小情侣高清国产在线视频| 97精品国产97久久久久久免费| 狠色婷婷久久一区二区三区_| 久草毛片| 激情综合色| 欧天美中出| 天天干18禁| 国产精品无码在线| 嫩草影院永久在线制服丝袜| 中文字幕熟女人妻丝袜| 97综合在线| 久久99草| 成人av影院在线观看| 日韩av女优在线免费一区| 大香蕉92| 国产免费操逼| 96免费视频在线| 亚洲欧美高清无码| 歐美一級亂黃99在綫精品| 日本二三四区| 超碰99热| 东京太热男人的天堂久久久| 久久超碰爱| 国产精品一区二区三区在线| 91九色首页| 97在线播放 | www欧美91| 欧美色综合影院| 北野未奈加勒比av| 久久久久国产精品喷潮免费观看臀 | 欧美综合 站| 亚洲成?V人片在线观看福利| 中文字幕乱偷人妻久久艾草网| 精品美女久久久久| 欧美影音在线| 国产综合操逼高清| 风韵犹存大大大大香蕉 | 久久宗合97| 日韩一级欧美一级在线观看| 色欲天香天天综合网-成年人三级片网站-欧美乱妇狂野-日韩国产专区-久久久久久 | 国产精品一二三区福利| 福利视频网站| 天天综合网91入口| 男人a天堂手机在线版| 九九热精彩视频| 国产精品一二三在线看| 亚洲,欧美,综合网| 亚洲老熟妇xxx| 国产粉嫩蜜臀av一区二区三区| 视频在线观看一二三区| 一级成人性爱| 啊啊啊久久久视频| 在线只有精品| 久96热在线观看视频| 97硬碰| 再深点灬舒服灬太大了添视频 | 日韩操逼性鲍| 超碰在线1234区| 成人看片网站| 中文字幕奈奈美被公侵犯| 久久精品99久久久久久| 先锋精品av色鲁| 香港澳门日本三级网站| 亚洲偷91色| 亚州色交| 亚乱色| 亚洲色图欧洲| 国产欧美黑人丰满在线| 精品女人999| 亚洲第一狼人丝袜美女另类 | www.91人妻.com| 97网址97| 色综合91| 日韩精品视频在线观看一卡二卡| 蜜臀视频网站| 欧美色图小说综合| 欧美一二在线| 欧美极品少妇交| 国产麻豆福利av在线播放| 欧美色图综合网| 天天享受天天看| 中文字幕黄色片| 天天爽夜夜爽夜夜爽精| 好吊色综合| 操死我了啊啊啊| 麻豆九九九| 99热这里只有精品9| WWW操逼| 清纯唯美综合| 嗯嗯啊啊的视频| 99久久com免费视频′| 亚洲欧洲国产综合av| A级国产欧美激情在线| 中出91视频| 黄资源| 欧美AB在线观看| 99久久精品国产高潮| 亚洲精品一二牛牛| 国产精品久久久| 少妇熟女视频一区二区三区| 女人的天堂大香蕉网| 曰韩欧美国产传媒麻豆第一区| 国产一区二区三区导航| 凹凸久久人人| 日韩 欧美 另类 人妻| 欧美传媒| 欧美日韩国产成人高清| 清纯唯美亚洲综合| 男人的天堂va| 日本欧美中文字幕| 日韩97P| 色路综合| 国产又粗又长视频| 欧美97超碰| 亚洲图片 欧美电影| 伊人96在线| 久久宗合亚洲| 好吊爽好吊爽在线视频,中文字幕精品一区二区日本,国产良妇出轨视频在线观看, | 日韩综合97p| 精品人妻15区| 东北女人高潮视频| 91性片| 诱惑网综合| 日韩超碰97| 综合欧美亚洲| 色色毛片| 丝袜剧情| 欧美日韩91| 97色碰| 伊人成人中文字幕久久网| 麻豆人妻精品一区二区| 五月婷婷hd| 性爱AV天堂| 日本顶级天天操狠狠操夜夜操中文字幕| 欧美在线55555| 亚洲日韩少妇一道本视频| 操逼999| 精吧天堂| 丰满人妻-区二区三区免费看 | 久草视频分类在线| 麻豆精品久久久久久久| 成人一区二区三区四区| 欧美三四五区| 亚洲 暴爽 AV人人爽日日碰| 淫荡少妇免费| 99久久久| 性爱欧美五月| 国产一二三在线视频五十路| www.91逼逼.com| 国产一区二区啪啪视频| 97精品国产97久久久| 精品人妻一区二区乱码一区二区| 欧美97网| 18禁中文字幕| 丁香六月天| 超碰97最新人妻| 国产91美女视频| 人妻少妇久久中文字幕一区二区 麻豆 | 婷婷精品| 舔舔啊| 国产精品久久久 | 欧美第38页| com 首页 18岁 禁区 女优 免费 精选 同城| 国产精品日日摸天天碰| 成全在线观看免费观看| 亚洲综合小说另类图欧美视频激情小说色五月天 | 天天综合网1| 97碰碰色| 久久鲁干| 97色色色综合网站| 干B网| 欧美一级A片不卡视频。| 欧美中出1| 91国产美女丝袜足交精品视频| 上床啊啊啊| 99热99在线播放激情| 色妺妺在线视频| 好爽要喷了| 欧美一区二区三区四区综合| 玖玖97综合 | 国岛片视频| 亚洲91亚洲| 啪啪啪综合| 国产女人操逼视频| 国产青视频| 91东北熟女| 色色婷婷丁香| 超碰 欧美| 最新中文字幕精品在线| 中文字幕人妻色偷偷久久皮 | 强奸乱亚洲| 亚洲欧洲无码一区夜| 襙一襙| 国产精品久久9| 精品999一区二区| 麻豆这里只有精品| 亚洲精品97p| 玖玖爱免费观看视频| 综合97亚洲| 久久国产性爱| 精品一区二区三区蜜桃臀www| 欧美熟妇成人一区二区| 亚洲中文字幕有码视频一区二区三区| 九久精品| 久jiu久神马影院| 狠狠超| 亚州宗合另类| 久久永久无码人妻视频| 强奸少妇AV导航网| 伊人网免费视频| 开心六月色| 人人操人人插 - 百度 - 百度| 欧美三级一级| 日韩熟女无码| 亚洲 另类 丝袜 自拍 动漫| 日本视频一区二区三区| 亚洲丝袜二区在线| 精品夜夜澡人妻无码| 欧美夜夜草视频| 超碰人妻久久人妻中文97| 精品久久久久久无码| 中 文字幕一区二区三四 五 区日 日 骚| 国产偷拍网站| 中文字幕文字幕无码一区二区三区电影99| 欧美操逼熟女| 99re这里只有精品2| 九九热精品在线| 亚洲色天| 超碰98综合网| www.zbzhongsen.com| 精品福利| 亚洲爱爱视频一区二区| 91超级碰碰| 欧美999| 欧美激情久| 亚洲色综合| 美国日韩黄片| 污电影在线观看| 99视频自拍| 日韩强奸av| 九九九九97| 欧美亚州手机在线| 精品欧美А∨无码黑人大荫蒂| 骚日日av| 久久有码| 91在线页| 静品嫩模一区二区| 国产精品久久久无码aV去| 操淫穴亚洲五月丁香 | 不卡免费av在线播放| 97碰| 欧美日韩亚洲少妇寂寞影院正在播放| 丝袜制服字幕在线| 巨爆乳肉感一区二区三区竹菊影视 | 啪啪AV导航| 啊啊啊啊啊在线| 亚州色阁| 国产福利夜| 九九热精品| 99精品视频在线观看免费| 亚洲精品少妇| 天天搞欧美| 久久久久久中文版| 女人妻一区| 大香蕉综合| 狠日操| www.色吧5.com| 啊啊啊啊免费视频| 欧美日韩国产色五月综合在线| 日韩中文字幕熟妇人妻| 欧美天天插| 激情综合久久| 新版天堂中文资源8在线| 91午夜无码| 欧美性爱日韩高清| 亚洲国产精品无码AV久久| 精品无av| 蜜桃传媒视频第一区入口在线看| 91超碰在线播放| 亚洲 欧美 另类 日韩 人妻一区| 精精夜夜| 大香蕉伊利av| 女人妻一区| 97蜜桃综合| 欧美色棕合| 3571色综合一区二区二区| 99亚洲天堂| 黄色av一区二区在线| 97欧美性爱| 爱av免费| 岛国成人av在线播放网址| 人人操人人摸人 | 大香网伊人久久综合网eew| 日欧美色| 美性中文综合网| 亚洲中文电影| 啊啊啊啊好大好硬啊啊啊啊啊 | 亚欧高清| 久久国产免费激情视频| 国产精品美女在线一区| 亚洲中文日韩欧美大香蕉视频| 黄片免费看的| 欧美激情中文字幕另类小说| 亚洲一区二区性爱电影| 综合色图区| 丁香六月激情综合| 啊啊啊 在线观看| 亚洲射综合网| 亚洲999综合| 亚洲色图片区| 精品999999| 内射夫妻三片| 黑人嘿嘿嘿超爽免费视频| 亚洲国产欧美中文永久| 日韩一区二区精品视频| 伊人aaa| 欧美亚洲| 天天躁日日躁AAA片李宗瑞| 久操不卡视频| 91久久国产综合久久| 殴美,日韩国产伦精品| 裸体女人草逼视频播放一区,二区,三区,四区,五区 | 国模艳艳啪啪一区| 91九色网| 日日夜夜骚| 亚洲国产亚洲天堂| 加勒比中文av| 熟女五十路一区二区三| 婷婷成人五月天| 青青草吊丝| 精人妻无码一区二区三区伊人直播| 夜夜夜夜久久久久| ,成人免费啪啪视频| 熟女被操视频网址| 麻豆福利视频导航| 96超碰网| 天天摸夜夜添无码小视频| 亚洲av无码成人精品国产| 天天干2区3区| 久久婷婷苹果| 日韩性爱视频在线免费观看| 九九热精品在线| oumeizonghese,www| 中文字幕视频二区| 久久久亚洲欧美综合| 欧美精品成人亚洲| 208天天久久九九九| 精品日韩人妻视频| 欧美九9 9 9| 精国久久一区二区三区98| 天堂男人网| 在线视频日韩欧美国产| 91欧美另类| 日韩欧美性爱电影在线观看| 日韩人妻一区二区精品| 亚洲污污网站| 欧美成年人性爱视频免费观看| 不卡啪啪视频| 色悠久久久av| 天天激情综合站| 精品99999久久久久久| 色亚洲欧美| 女人喷水视频在线观看| 性爱欧美五月| 欧美人人操人人插| 91亚洲不卡一区| 97Ai亚洲| 五月天婷婷色| 人妻丝袜一区二区三区在线| 五月丁香社区婷婷日韩欧美精品影院 | 十八禁啪啦拍视频无遮挡| 97在线观看免费视频l| 亚洲欧美一区二区网址| 亚殴在线| 欧美人黑A片无码免视费| 天天日少妇逼AV| 婷婷午夜清品久久久久久久性色视频观| 熟女精品va中文字幕| 欧美91在线+|+欧美| 男女猛烈无遮掩视频免费软件| 色综合91| av影片在线观看不卡| 爱爱动态120秒| 99re超碰| 高树玛利亚无码流出| 性综合网| 亚洲精品天天影视综合网 | 五月婷婷AV| 操熟女91| 亚州操操穴网| 超碰在线欧美性爱激情| 精品一久久久| 精品亚洲国产成人av网站| 成人欧美日超碰| 黄色av片三级三级三级免费看| 欧美最大综合网| 无码少妇精品一区二区60岁老人| 亚洲图片小说欧洲| 按摩中文字幕| 日本熟女不卡视频| 亚洲精品一区二区免费在线观看| 亚洲色图欧美视频| 精品人妻少妇| 偷拍亚洲高清图片| 丰满人妻一区二区三区四区| 偷拍新久久| 五月婷婷色| 国产一区二区免费福利片| 伊人久久大香线蕉亚洲五月天,青草青草欧美日本一区二区,欧美日产欧美日产国产 | 欧美激情一| 丁香五月综合| 亚洲成人在线高清| 精品国产综合久久福利,热99这里有精品综合久久,99热这里只有免费国产精品,精 | jk白丝没脱就开始啪啪| 97精品一区| av在线浏览| 思思热在线cao| 国产精品日日摸天天碰| 久久久久9久久久久| 高清国产成人无码| 丰满人妻-区二区三区免费看| 亚洲免费精品一区| 欧美国产伊人久久久久| 女人综合网| 人妻少妇精品久久久| 久久亚洲婷婷| 亚川综合视频| 亚洲乱妇p22| 9精品久久| 97超碰国产亚洲精品资源| 男人天堂黄片| 国产白丝精品在线观看| 福利五区| aaa淫乱视频| 欧洲色色| 亚洲成人福利电影免费 | 97精品视频免费| 久操精品网| 国产女同视频在线播放| 久久久久久综合久久伊人蜜月| 91天美传媒在线观看| AV大香蕉| www.91逼逼.com| 欧美黄页| 亚洲色人阁| 福利大香蕉| 中文幕97| 日少妇亚洲版| 国产一区二区三区中文字幕| 欧美黄片视频在线观看免费 | 午夜理论片在线观看免费| 亚洲国产一级黄色视频| 精品亚洲天堂| 97鸡把在线视频| 91伊人久久在线| 亚洲av热热色| 亚洲aw毛茸茸在线| 校园春色制服丝袜中文字亚洲 | 狠狠操狠狠燥| 日本一久是| AV在线资源| 精品人妻一区二区免费蜜桃| 91亚·色| 99热综合在线| 91婷婷伊人狠人| www.99热| 超碰99在线| 操婷婷逼| 国产亚洲色婷婷久久99精品91| 亚洲天堂7777| 人妻人人做人人澡人人爽欧美一区| 大香蕉免费3| WWW.操逼.COM| 亚洲av噜噜噜噜噜噜| 超碰95| 美女天天干| J?P?NESEHD熟女熟妇伦| 亚洲欧美另类激情小说| 国产精品爆乳懂色蜜乳| 国产偷人伦激情在线观看| 精品无码秘 人妻一区二区| 蜜臀99久久| 女性喷水高潮在线观看| 免费A片三p视频| 91精品微拍福利| 欧美日产国产在线成人第一区| 国产一区二区三区白丝| 人妻 丝袜美腿 中文字幕| 中文字幕一二区二三区人妻专区| 香蕉久久AⅤ...| 333kkkk·亚洲com久久| 午夜福利成人免费视频| 婷婷色婷婷| 18精品一区| 伊人久久大香线蕉亚洲五月天,青草青草欧美日本一区二区,欧美日产欧美日产国产 | 国产少妇高潮| 国产精品色约约| AV有码在线| 亚洲无码电影久久久| 翔田千里AⅤHD无码| 18禁的网站在线| 欧美国产日韩高清在线| 亚洲日本成人动漫| 啊灬快c我灬啊灬用力灬啊灬-国产精品性做久久久久久-成人AV | 玖玖久久久| 国产午夜精品理论片一二三区区| 1人人看人人摸人人操| 日本熟妇人妻中出视频| 丝袜美腿诱惑亚洲欧美视频在线观看| 男人的天堂在线有码| 超碰综合色| 欧姜老司机| 在线有码中文字幕| 强奸乱亚洲| 超碰天天久久79| 日韩无码服务区| 亚洲熟妇一,二,三期| 亚洲精品毛片在线观看| 凹凸视频特色日本特黄| 成人女人国产| 97伊人超碰| 久久丁香久草综合网| 超碰99热| 天天综合网1| 999999精品| 免费作爱一级视频| 日韩美脚一区二区网站| 激情小说亚洲视频| 欧美一区二区男人天堂| 国产成人bd在线观看| 日韩在线AB| 久久久999国产精品| 国产精品免费1区2区视频| 色婷婷导航| 久久精品人妻一区二区| 欧美色女人| 九九色婷婷| 热久日综合| 亚洲无992tv| 久久XX| 啊啊啊啊好大好硬啊啊啊啊啊 | 亚洲 图片 综合91| 亚洲成人AB| 一起草日韩| 狼人综合婷婷激情四射 | 中文字幕久久精视频久久大全| 操久久久久| 黄色一级视| 亚洲情色在线| 亚洲欧洲自拍图片专区满春格| 激情五月综合网| 91亚洲狠狠色| 日本欧美一区二区三区免费| 亚洲人在线成线成人| 蜜臀99久| 天天操综合网| 十八禁黄色| 美女被艹尤物视频| 欧美日日人人天天| 浪人综合网| 韩国国产欧美情侣视频在线| 国内毛片国产欧美拍| 99久久这里只有精品| 久久国产乱子伦精品免费女,网站| 爽 好舒服 无码刺激久久| 国产精品一区二区后入| 啪啪资源网| 自拍亚洲综合| 91社区拍啪人妻| 久久久精品中文字幕麻豆| 国产精品亚洲高清在线| 夜夜人妻爽| 中文字幕久热视频在线| 久久99精品九九久久久婷婷| 蜜乳AV.COM| 蜜屁Av| 女人喷水视频在线观看| 97超碰国产亚洲精品| 五月丁香社区婷婷日韩欧美精品影院 | 夜夜国产一区| 探花一区二区三| 中文字幕AV片| 久久久久久久国产a∨| 中精品一区二区三区| 亚洲日韩成人性爱视频| 色97欧美| 日本韩国一本产品小视频日本韩国一本产品久久久产品小视频日本韩国一本产品久 | 九九九九九九九九九国产精品| 69精品人人人人| 999久久久九九九九| 超碰 97国产熟女| 日韩熟女操逼| 免费超碰97久久| 亚洲中文字幕精品久久久久久直播| 久久久久久久综合,国产| 韩国三级理论在线| 色臀AV| 日本裸体久久色噜噜| 免费?级毛片无码?∨蜜芽试看| 牛牛久久国产精品视频一二三| 国产精品一级毛片不卡视| 亚洲脚交| 99久久久无码| 无码人妻精品一区二区中文| 爱丝福利| 夜夜夜久久| 国语精品内射在线观看| 亚洲同性aV综合| 嗯阿好爽好紧| 激情五月天社区| 精品久久久久久久| 色娱乐色呦呦夜夜夜夜av| 久久丁香五月婷婷| 国语对白露脸XXXXXX| 天天操天天日天天干| 99性爱| 成人性爱av| 精品视频久久| 美日韩一二三区| 欧美亚洲日韩人妻在线观看| 国产福利电影| 日韩精品午夜操呦呦不卡影院| 欧洲Au麻豆| 欧美视频中文字幕区| 色综合国产在线观看| 五月天AV资源| 日日黄色三级网站| 无码9区| 嫩草一区二区在线观看| 91天天| 天天综合~91| 上床不卡网站| 色香色香欲天天天影视综合网| 青青久久手机线视频| 男人的天堂2018| 成人草草视频| 国产精品亚洲日韩骚欢乐谷最新地址发布页huanieguty性屋娱乐妖精视频 | 久jiu久神马影院| 日韩激情啪啪| 老熟女乱伦一区| 亚洲精品人体| 四虎影视国产精品| 亚洲综合贴图91| 好爽,再快点啊哈嗯嗯嗯嗯| 日韩操人| 国产精品岛国片在线观看| 免费成人在线观看91| 91麻豆天美传媒在线| 九草九九九| 久久综合久色欧美综合狠狠 | 一区二区三区成人| 久久一留热品黄| 亚洲成人碰碰| 九九热精品在线| 亚洲偷拍自拍在线视频| 在线国产福利网址导航| 国产精品嫩草影院午夜两性| 黑人猛交| 天天做天天爱| 亚洲成成熟女人综合一区二区| 大但人体久久久久| 久久久久久久9最新免费视频观看| 日本精品国产视频| 男人的天堂激情| 91亚州日韩高清| 长长久久曰曰夜夜成人网| 久99久视频| 久久曰曰| 丁香六月啪啪| 色情成人五月天| 六月激情网| 激情开心五月天| 色婷婷五月天| 久久小视频| 嗯嗯啊中文字幕| 日本人体九九九九九九| 久久一二三四五六七八九区区区| 99热在线播放| 亚洲国产第一页综合视频| 国产 码在线成人网站| 久久xx| 91久久久久久久久久久| 久视频在线观看| 91色综合激情| 欧美激情久| 天天干夜夜肏| 人妻激情视频| 夜夜爽夜夜操| 97无码视频在线播放| 人人干黄色| 亚洲第2页| 精品少妇一区二区三区在线视频| 国产激情久久久| 91人人爽人人爽| 青娱乐蜜桃臀AV色婷| 国产视频小说| 色97欧美| 操一操摸一摸| 精品人妻中文字幕4399| 熟女人妇一区二区三区| 99精品网| 丰满搜索结果 -第18页- 久久高清无码| 超碰中文字幕人妻草一区| 天天干夜夜肏| 青草精品视频日本久久久久网站在线| 成人免费性爱视视| 精品偷拍13p欧美dodk视频| 99热这里只有精品地址| 久7色| 欧美91在线+|+欧美| 成人九九| 亚洲无码国产探花在线观看| 蜜乳AV一区二区三区四| 亚洲色图超碰在线| 欧美色图下一页| 久久久亚洲熟妇资源| 牛牛AV人人夜夜澡人人爽| 亚洲αv一区二区三区| 天天流夜夜操| 久久久久久久久久久久九| 91精品人妻一品二品三品| 家庭乱伦国产精品| www.色婷婷色综合| 久久这里精品国产99丫e6| 美熟女逼导航AV操逼| 青青草中文字幕| 性久久| 国产精品久久久亚洲一区| 久久久国产精品亚洲精品| 色色九区| 97人人操人人摸人人爱| 插入综合网| 久久成人精品| 精品久久久久久无码| 俺去也婷婷| 国产偷人妻精品一区二区在线| 少妇高潮九九九九| 人妻精品一区二区在线| 亚洲不卡av在线| 亚洲高清综合网| 大香蕉一线视频| 黄总AV色图| 亚州综合在线| 免费看日本操逼视频| 91高跟美女在线播放| 欧美中文字幕精品人妻| 欧美疯狂做爰xxxx| 亚洲人久久久网| 在线播放成人高清免费视频| 综合熟女| 97超碰伊人| 国产三级多多影院2022国产AA一级毛片无码| 人妻夜夜爽天天爽麻豆三区网站| 黑人性欧美| 竹菊影视国产一区二区| 狠狠躁天天躁日日躁| 日韩免费一级性爱视频| 婷婷四五区| 亚洲Av诱惑| 九九99精品视频在线观看| 亚洲性感丝袜诱惑在线观看| 十八禁视频一区二区| 久热色情精品| 91亚洲人| 综合熟女| 91精品国产一区三一| 午夜天堂精品久久久久91| 51一区二区三区| 黄色av片三级三级三级免费看| 新精精品久久精品| 免费超碰97在线观看| 大肉棒导航| 在线免费观看日韩一区| 天天干天天日天天射黄色片| 成年人黄色视频免费| 中美日韩毛片| 国产在线能看的你懂的| 欧美一区二区在线资源| 国产美女在线精品免费看| 九九九九九九九九九九九免费国产| 伊人网高清| 操人妻少妇中文| 综合久久少妇中文字幕| 91人妻丝袜无码| 韩国三级一线观看久| 东北女人的毛片| 天天草夜夜草高潮片| 超碰久久草| 99热在线观看| 日本一二三免费久久| 丁香五月天啪啪| 91视频综合网| 日韩少妇丰满亚洲| 在线观看成人性爱免费小视频| 夜夜 中文视频rt| 啪一啪免费视频| 国产精品午夜福利| 67914亚洲精品| 日韩激情电影中文字幕| 青青草啪啪网| 强奸乱伦av电影| 欧美日韩亚洲天堂| 18精品一区| 思思热久久成人| 亚洲丝袜二区在线| Av色五月| 一类无码操逼视频| 欧美色吧综合| 中文字幕91综合| 国产对白刺激视频| 久久久青草青青国产亚洲免观精品高清完整版_97久久综合区小说区图片区,国精品 | 久久香蕉超碰97国产精品| 91在线精品| 欧美激情综合| 粉嫩久久久久| 91黑丝露脚| 久久久久久一日韩字幕无码| 国产精品69久久久久久久| 亚洲91极品| 人人操人人操人人操人人操人人操人人人11.CM| 精人妻无码一区二区三区伊人直播 | 91在线限制级| 日韩AV无码中文一区二区| 热热色中文无码| 色天堂综合| 婷婷久久五月| 色在线综合| 大香蕉视频啪啪啪啪| 99青青草国产视频| 亚洲色久| 伊人久久大香线蕉无码| 亚洲视频精选| 啊啊啊啊啊啊啊在线| 九九毛片这里只有精品| 18禁超污无遮挡无码免费网| 女人天堂av在线播放| 欧美日韩97在线| 欧美狠狠操| 大香蕉啪啪啪| 九九久久一区二区伦理| 九九九九热| 密臀成人视频久久久| 亚洲区限制级| 九九九九88| 久99热| 國產尤物AV尤物在線觀看| 囯产精品久久久久久久久久梁医生 | 熟女中出视频| 开心五月婷婷| 国产在线强奸视频| 日韩精品人妻一| 中文字幕后石码四区五区| 国产乱码久久久久久| 亚洲AV乱码专区国产噜噜亚洲| 强奸a片网| 国产精品一级特黄aaa大片在线观看| 亚洲开心网| 大香蕉人妻久久| 亚洲熟女少妇免费视频| 欧美在线55555| 亚州成人A√| 久久草草欧美精品| 九九性视频| 综合欧美日本三级| 日韩精品黄片免费观看| 成人一级性爱| 成人自拍三级在线观看| 精品人成视频在线观看| 国产97在线 | 亚洲| 日曰骚久久精品| 51一区二区三区| 亚洲不卡一| 超碰 国产熟女精品一区| 欧美日韩人妻婷婷一区| 精品96久久| 1204av韩国| 国产十八禁视频| 久久香蕉超碰97国产精品| 亚洲熟妇熟在线电影视频| 一区二区三区男女操逼黄色小电影| 91亚·色| 色综合中文字幕不卡| 天天色悠悠激情| AV天天综合| 国产精品国产自产拍高清AV| 亚州成人a∨| av午夜玫瑰| 九九九九九九九九九九精品视频| 高清肉丝中文无码| 丝袜狠狠草尤物 91| 插B在线观看| 精品天堂| AVE乱伦| 高清一区AV无码| 国产精品自拍欧美在线|