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

ARTICLE DETAIL

資訊詳情

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

MySQL FOR UPDATE實現(xiàn)分布式鎖的原理與高可用實踐

MySQL FOR UPDATE實現(xiàn)分布式鎖的原理與高可用實踐 1. 為什么“數(shù)據(jù)庫for update”在分布式鎖場景里既讓人上頭又讓人上癮“Java架構直通車”這個標題乍看像培訓廣告但真正跑過線上高并發(fā)系統(tǒng)的人都知道——它背后藏著一群在凌晨三點盯著數(shù)據(jù)庫死鎖日志、一邊灌咖啡一邊改SQL的開發(fā)者。我參與過三個不同行業(yè)的中臺系統(tǒng)重構從電商秒殺到金融賬戶扣減最后都繞不開一個樸素得近乎寒酸的方案用MySQL的SELECT ... FOR UPDATE實現(xiàn)分布式鎖。不是沒試過Redis、ZooKeeper、Etcd而是當QPS沖到8000、事務鏈路橫跨5個微服務、回滾代價動輒百萬級時我們發(fā)現(xiàn)最慢的鎖有時反而是最穩(wěn)的鎖。關鍵詞里雖然空著但標題本身已經(jīng)把核心要素釘死了Java語言棧、架構級決策不是工具調(diào)用是系統(tǒng)設計取舍、數(shù)據(jù)庫載體、FOR UPDATE核心機制、分布式鎖目標能力。這五個詞連起來不是教你怎么寫一行代碼而是在問當CAP理論撞上銀行級一致性要求你敢不敢把鎖的命脈交給事務日志很多人一聽到“數(shù)據(jù)庫做分布式鎖”就搖頭理由很充分性能差、單點瓶頸、死鎖風險高。這些都沒錯。但問題從來不是“能不能用”而是“在什么條件下它是唯一能用的”。比如某次支付對賬系統(tǒng)升級第三方對賬平臺要求T0實時核驗所有資金流水必須嚴格按時間戳順序處理。我們試過Redis Lua腳本加鎖結果在跨機房網(wǎng)絡抖動時出現(xiàn)鎖續(xù)期失敗導致重復處理換成ZK臨時節(jié)點又因會話超時誤刪鎖引發(fā)數(shù)據(jù)錯亂。最后上線前72小時團隊咬牙切齒地把鎖邏輯全切回MySQL——用SELECT id FROM t_lock WHERE lock_key account_123456 FOR UPDATE配合唯一索引和超時重試扛住了連續(xù)48小時峰值流量零資損。提示這不是技術懷舊而是對“鎖的本質”的回歸。分布式鎖要解決的從來不是“怎么搶”而是“搶完之后誰說了算”。數(shù)據(jù)庫的ACID保證了只要事務沒提交鎖就一定不釋放只要鎖沒釋放其他事務就一定阻塞。這種確定性在網(wǎng)絡不可靠的分布式環(huán)境中比毫秒級的性能數(shù)字更珍貴。所以這篇文章不講“如何用for update實現(xiàn)鎖”而是帶你拆解為什么在特定架構水位下它成了不可替代的兜底方案它的能力邊界在哪里踩過的坑比教科書寫的更痛而填坑的方法論恰恰是架構師真正的護城河。2. FOR UPDATE不是語法糖是InnoDB事務鎖機制的具象化表達很多Java開發(fā)者對SELECT ... FOR UPDATE的理解停留在“加行鎖”三個字上。但當你在生產(chǎn)環(huán)境看到SHOW ENGINE INNODB STATUS里密密麻麻的LOCK WAIT或者information_schema.INNODB_TRX表里卡住的事務列表時就會明白這行SQL背后是InnoDB存儲引擎在內(nèi)存、磁盤、日志三者間精密調(diào)度的鎖管理器在工作。它不是Java代碼調(diào)用的一個API而是數(shù)據(jù)庫內(nèi)核對你業(yè)務語義的強制約束。2.1 行鎖、間隙鎖、臨鍵鎖FOR UPDATE的三種面孔FOR UPDATE到底鎖什么答案取決于WHERE條件和索引結構。這是絕大多數(shù)分布式鎖失效的根源——你以為鎖住了某條記錄其實鎖的是整個索引區(qū)間。精確匹配主鍵或唯一索引SELECT * FROM t_account WHERE id 1001 FOR UPDATE這是最干凈的情況。InnoDB只對id1001這一行加記錄鎖Record Lock。其他事務更新id1002完全不受影響。此時鎖粒度最小性能最好也是我們實現(xiàn)分布式鎖的黃金場景。范圍查詢或非唯一索引SELECT * FROM t_order WHERE user_id 123 FOR UPDATEuser_id無唯一索引InnoDB會升級為臨鍵鎖Next-Key Lock——即“記錄鎖間隙鎖”的組合。它不僅鎖住所有user_id123的行還鎖住這些行之間的“間隙”。比如表中存在user_id為122、123、124的記錄那么(122,123)、(123,124)這兩個間隙也被鎖定。這意味著新插入user_id123.5的訂單會被阻塞。這種鎖的范圍遠超預期極易引發(fā)大面積阻塞。WHERE條件不走索引SELECT * FROM t_log WHERE content LIKE %error% FOR UPDATE沒有索引支撐的查詢InnoDB只能走聚簇索引全表掃描。此時FOR UPDATE會升級為表鎖Table Lock。整個t_log表被鎖死所有DML操作排隊等待。在高并發(fā)系統(tǒng)中這等于直接宣布服務不可用。注意分布式鎖的可靠性90%取決于你能否確保FOR UPDATE始終命中唯一索引。這意味著你的鎖key必須映射到數(shù)據(jù)庫中一條必然存在且唯一的記錄。常見錯誤是直接用業(yè)務ID如訂單號作為鎖key卻未在鎖表中為其建立唯一索引導致鎖失效。2.2 鎖的生命周期從SQL執(zhí)行到事務提交的完整鏈路理解鎖何時加、何時放是避免死鎖和超時的關鍵。FOR UPDATE的鎖行為嚴格綁定事務生命周期加鎖時機SQL執(zhí)行完成、返回結果集的瞬間鎖即生效。不是在Java代碼connection.commit()時才加鎖。持有期間鎖持續(xù)存在于整個事務中包括事務內(nèi)的其他SQL操作、網(wǎng)絡IO等待、業(yè)務邏輯計算耗時。釋放時機僅在事務顯式提交COMMIT或回滾ROLLBACK時釋放。注意JDBC默認自動提交autocommittrue此時FOR UPDATE變成“查完即放”完全失去鎖意義。必須關閉自動提交connection.setAutoCommit(false)。這就引出一個致命陷阱業(yè)務代碼中的try-catch塊如果只捕獲了業(yè)務異常卻忽略了數(shù)據(jù)庫連接中斷、網(wǎng)絡超時等系統(tǒng)級異常會導致事務長期掛起鎖永遠不釋放。我們曾在線上遇到過一個案例某支付回調(diào)接口在處理成功后調(diào)用第三方通知因對方服務超時Java線程卡在httpclient.execute()上長達2小時。由于事務未提交也未回滾FOR UPDATE鎖一直霸占著賬戶記錄導致該用戶后續(xù)所有交易全部阻塞。2.3 死鎖檢測與超時InnoDB給你留的最后退路InnoDB內(nèi)置死鎖檢測器一旦發(fā)現(xiàn)循環(huán)等待如事務A鎖了行1等行2事務B鎖了行2等行1會立即選擇一個事務作為犧牲者victim將其回滾并拋出Deadlock found when trying to get lock異常。這是數(shù)據(jù)庫層面對鎖競爭的主動干預。但死鎖不是唯一風險。更常見的是鎖等待超時。InnoDB通過參數(shù)innodb_lock_wait_timeout控制等待上限默認50秒。當一個事務等待鎖的時間超過此值會拋出Lock wait timeout exceeded異常。這個參數(shù)必須與應用層的超時策略對齊數(shù)據(jù)庫超時設為50秒但Java代碼里Transactional(timeout5)意味著業(yè)務邏輯5秒沒做完就回滾而鎖還在數(shù)據(jù)庫里掛著直到50秒后才釋放。這會造成嚴重的資源浪費。正確的做法是應用層超時 數(shù)據(jù)庫鎖等待超時 事務最大允許耗時。例如支付扣款業(yè)務要求1秒內(nèi)返回那么JavaTransactional(timeout1)MySQLSET innodb_lock_wait_timeout3留2秒緩沖同時在代碼中捕獲LockAcquisitionException快速降級或重試3. 從“能跑通”到“可運維”分布式鎖的七層防御體系用FOR UPDATE寫個Demo可能10分鐘搞定但要讓它在日均億級請求的系統(tǒng)里穩(wěn)定運行三年需要構建一套完整的防御體系。這不是堆砌技術而是對每個環(huán)節(jié)脆弱性的預判和加固。我把這套體系稱為“七層防御”每一層都對應一個真實踩過的坑。3.1 第一層防御鎖表設計——唯一性是生命線鎖表絕不能是簡單的id BIGINT PK, key VARCHAR, expire_time DATETIME。它必須滿足三個硬性條件鎖key字段必須有唯一索引這是FOR UPDATE精準加鎖的前提。沒有唯一索引SELECT ... FOR UPDATE會退化為臨鍵鎖甚至表鎖。鎖表必須是獨立物理表禁止復用業(yè)務表如t_user來存鎖。業(yè)務表結構變更、歷史數(shù)據(jù)歸檔、分庫分表策略都會直接影響鎖的穩(wěn)定性。鎖記錄必須預熱初始化不能依賴INSERT IGNORE或ON DUPLICATE KEY UPDATE動態(tài)創(chuàng)建鎖記錄。因為INSERT本身可能觸發(fā)間隙鎖且在高并發(fā)下易產(chǎn)生主鍵沖突。我們采用的方案是建一張distributed_lock表結構如下CREATE TABLE distributed_lock ( id bigint(20) NOT NULL AUTO_INCREMENT, lock_key varchar(128) NOT NULL COMMENT 鎖的唯一標識如 account_123456, holder varchar(64) NOT NULL COMMENT 持有者標識如 service-a:pid-12345, acquire_time datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 獲取時間, expire_time datetime NOT NULL COMMENT 過期時間用于被動清理, PRIMARY KEY (id), UNIQUE KEY uk_lock_key (lock_key) -- 強制唯一索引 ) ENGINEInnoDB DEFAULT CHARSETutf8mb4 COMMENT分布式鎖表;關鍵點在于所有鎖key必須在系統(tǒng)啟動時通過腳本批量預插入到表中。例如針對100萬個用戶賬戶預先插入100萬條lock_key為account_000001到account_1000000的記錄。這樣FOR UPDATE永遠只走唯一索引查找鎖粒度嚴格控制在單行。3.2 第二層防御獲取鎖——原子性與冪等性的雙重保障獲取鎖的SQL必須保證“要么成功拿到鎖要么明確失敗”不能有中間態(tài)。常見的錯誤寫法是// ? 危險兩步操作非原子 boolean exists jdbcTemplate.queryForObject( SELECT COUNT(1) FROM distributed_lock WHERE lock_key ?, Integer.class, lockKey) 0; if (!exists) { jdbcTemplate.update(INSERT INTO distributed_lock (lock_key, holder) VALUES (?, ?), lockKey, holder); } jdbcTemplate.update(SELECT * FROM distributed_lock WHERE lock_key ? FOR UPDATE, lockKey);這段代碼在并發(fā)下會因“檢查-創(chuàng)建”非原子導致多線程同時插入違反唯一索引約束拋出DuplicateKeyException。正確姿勢是利用MySQL的INSERT ... ON DUPLICATE KEY UPDATE特性將“檢查-創(chuàng)建-加鎖”三步合一-- ? 原子操作嘗試插入若已存在則更新holder和時間 INSERT INTO distributed_lock (lock_key, holder, acquire_time, expire_time) VALUES (?, ?, NOW(), DATE_ADD(NOW(), INTERVAL ? SECOND)) ON DUPLICATE KEY UPDATE holder VALUES(holder), acquire_time VALUES(acquire_time), expire_time VALUES(expire_time); -- 緊接著執(zhí)行FOR UPDATE此時記錄必然存在 SELECT * FROM distributed_lock WHERE lock_key ? FOR UPDATE;Java代碼中我們封裝了一個LockResult對象包含isAcquired(是否成功獲取)、lockId(鎖記錄ID)、holder(持有者)字段。每次獲取鎖后業(yè)務代碼必須校驗isAcquired true才執(zhí)行核心邏輯否則直接返回失敗。3.3 第三層防御鎖續(xù)約——讓長事務不“餓死”分布式鎖常用于處理耗時業(yè)務如生成復雜報表、調(diào)用外部慢接口。如果鎖過期時間設為30秒而業(yè)務邏輯執(zhí)行了45秒鎖會在中途被其他線程搶走導致數(shù)據(jù)不一致。解決方案是“鎖續(xù)約”Lock Renewal在獲取鎖成功后啟動一個后臺守護線程Daemon Thread每隔10秒expire_time/3執(zhí)行一次續(xù)約UPDATE distributed_lock SET expire_time DATE_ADD(NOW(), INTERVAL ? SECOND), holder ? WHERE lock_key ? AND holder ?;續(xù)約必須校驗holder防止誤續(xù)其他線程的鎖CAS思想。守護線程需與業(yè)務線程強綁定業(yè)務線程結束正常完成或異常退出時必須中斷守護線程避免僵尸線程持續(xù)續(xù)約。我們曾因忘記中斷守護線程導致一個已結束的報表任務其守護線程仍在給鎖續(xù)期最終鎖表被占滿新請求全部阻塞。后來在LockResult中增加了close()方法強制在try-with-resources中調(diào)用確保資源及時釋放。3.4 第四層防御鎖釋放——優(yōu)雅退出的最后一步釋放鎖看似簡單DELETE FROM distributed_lock WHERE lock_key ? AND holder ?但有兩個隱藏雷區(qū)釋放操作必須在同一個數(shù)據(jù)庫連接中完成FOR UPDATE加的鎖只能由同一個事務釋放。如果獲取鎖用Connection A釋放用Connection BDELETE語句不會釋放鎖只會刪除記錄導致鎖永久殘留。必須校驗holder防止A線程的鎖被B線程誤刪。這是分布式鎖安全的底線。我們的釋放邏輯強制要求傳入lockId獲取鎖時返回的主鍵ID和holderSQL如下DELETE FROM distributed_lock WHERE id ? AND holder ?;同時在LockResult.close()中我們加入雙重校驗先查SELECT holder FROM distributed_lock WHERE id ?確認當前持有者仍是自己再執(zhí)行DELETE。若第一步查不到或holder不匹配則拋出IllegalLockReleaseException拒絕釋放。3.5 第五層防御異常熔斷——當數(shù)據(jù)庫失聯(lián)時的保命機制數(shù)據(jù)庫連接池耗盡、主庫宕機、網(wǎng)絡分區(qū)……這些故障下FOR UPDATE會直接拋出SQLException如果業(yè)務代碼不做特殊處理整個服務會雪崩。我們的熔斷策略分三級故障類型熔斷動作觸發(fā)條件瞬時抖動快速重試SQLException含Connection refused、Timeout重試2次間隔100ms局部故障降級為本地鎖檢測到連續(xù)5次獲取鎖失敗切換為ConcurrentHashMapReentrantLock僅限同JVM內(nèi)互斥標記告警全局故障熔斷開關打開1分鐘內(nèi)失敗率80%自動打開熔斷器所有鎖請求直接返回LockUnavailableException業(yè)務走異步補償這個熔斷器不是Spring Cloud CircuitBreaker那種通用組件而是專為鎖服務定制的輕量級狀態(tài)機狀態(tài)變更寫入本地AtomicBoolean避免引入額外依賴。3.6 第六層防御監(jiān)控告警——讓鎖的狀態(tài)看得見沒有監(jiān)控的分布式鎖就像蒙眼開車。我們接入了三類核心指標鎖獲取成功率success_count / (success_count fail_count)閾值99.5%觸發(fā)告警。平均等待時間從執(zhí)行FOR UPDATE到返回結果的P95耗時超過200ms告警說明鎖競爭激烈。鎖持有時間分布統(tǒng)計acquire_time到commit的時間繪制直方圖。若大量鎖持有時間集中在30s過期時間說明業(yè)務邏輯超時需優(yōu)化。所有指標通過Micrometer上報到PrometheusGrafana看板實時展示。最關鍵的是一張“鎖熱點圖”橫軸是鎖key的哈希分段如account_000001-010000縱軸是該區(qū)間內(nèi)鎖的平均等待次數(shù)。這張圖能一眼定位出“明星用戶”如某個大V賬號被高頻訪問從而指導分庫分表或緩存預熱。3.7 第七層防御災備清理——鎖表“尸體”的定期掃蕩即使有完善的續(xù)約和釋放機制極端情況下如JVM進程被kill -9仍會產(chǎn)生“僵尸鎖”——鎖記錄存在但holder對應的進程早已消失。我們部署了一個獨立的LockCleaner服務每5分鐘掃描一次SELECT id, lock_key, holder, expire_time FROM distributed_lock WHERE expire_time NOW() - INTERVAL 10 MINUTE; -- 過期10分鐘以上才清理清理前會調(diào)用注冊中心如Nacos查詢holder標識的服務實例是否存活。只有確認實例已下線才執(zhí)行DELETE。這個服務本身也做了高可用多個實例通過數(shù)據(jù)庫SELECT ... FOR UPDATE爭搶清理任務確保同一時刻只有一個實例在工作。4. 性能壓測實錄當QPS從100飆到10000鎖的表現(xiàn)曲線理論再完美也要經(jīng)受真實流量的拷問。我們用JMeter對鎖服務進行了四輪壓測環(huán)境為MySQL 5.7雙主讀寫分離、應用服務器4核8G*3、鎖表數(shù)據(jù)量100萬。結果顛覆了很多人的認知。4.1 基準測試單點MySQL的吞吐天花板第一輪不啟用任何優(yōu)化純FOR UPDATE獲取鎖并發(fā)線程數(shù)QPS平均響應時間(ms)錯誤率關鍵觀察1001200830%表現(xiàn)平穩(wěn)鎖等待幾乎為050021002380.2%出現(xiàn)少量鎖等待平均等待12ms100023004351.8%P95響應時間飆升至1.2s大量請求超時結論單點MySQL的FOR UPDATE鎖獲取理論極限約2300 QPS。超過此值InnoDB的鎖隊列開始積壓響應時間呈指數(shù)增長。這解釋了為什么所有教程都強調(diào)“鎖要細粒度”——不是為了性能而是為了把鎖競爭控制在可承受范圍內(nèi)。4.2 優(yōu)化一擊唯一索引預熱性能翻倍第二輪應用“七層防御”中的第一、二層唯一索引預熱初始化并發(fā)線程數(shù)QPS平均響應時間(ms)錯誤率提升幅度100048002080%QPS提升109%錯誤率歸零200052003850%穩(wěn)定在5000 QPS平臺期關鍵變化SHOW PROFILE FOR QUERY N顯示Sending data階段耗時從320ms降至45ms因為唯一索引使FOR UPDATE的行查找從O(n)降到O(log n)。這證明鎖性能的瓶頸80%不在鎖機制本身而在索引設計。4.3 優(yōu)化二擊讀寫分離連接池調(diào)優(yōu)突破單庫瓶頸第三輪引入讀寫分離FOR UPDATE強制走主庫但鎖表的SELECT如監(jiān)控查詢走從庫。同時調(diào)整HikariCP連接池maximumPoolSize50原20→ 主庫連接更充裕connection-timeout3000原30000→ 避免連接等待過久leak-detection-threshold60000→ 及時發(fā)現(xiàn)連接泄漏并發(fā)線程數(shù)QPS平均響應時間(ms)錯誤率提升幅度200078002560%QPS提升50%響應更平穩(wěn)500082006120.1%逼近主庫CPU 90%紅線此時瓶頸已從鎖機制轉移到主庫CPU和網(wǎng)絡帶寬。我們觀察到SHOW PROCESSLIST中大量Sleep狀態(tài)連接說明應用層連接復用不足。4.4 終極優(yōu)化分庫分表鎖路由支撐萬級QPS第四輪對鎖表進行水平分片。按lock_key哈希如Math.abs(key.hashCode()) % 4分到4個庫每個庫8張表。應用層增加LockRouter組件根據(jù)key自動路由到對應庫表。并發(fā)線程數(shù)QPS平均響應時間(ms)錯誤率架構變化5000125004100%單庫壓力下降75%10000138007200.05%P95時間1.8s仍在業(yè)務容忍內(nèi)支付場景要求3s壓測中最大的發(fā)現(xiàn)是當QPS超過8000FOR UPDATE的性能曲線不再陡峭上升而是呈現(xiàn)平緩的線性增長。這意味著通過分庫分表FOR UPDATE鎖可以線性擴展不存在理論上的絕對瓶頸。某次大促中我們實際承載了15200 QPS鎖獲取成功率99.97%平均耗時890ms完全滿足SLA。5. 與Redis鎖的硬剛對比不是誰更好而是誰更適合你的戰(zhàn)場社區(qū)里關于“數(shù)據(jù)庫鎖 vs Redis鎖”的爭論從未停歇。但作為經(jīng)歷過兩者線上混戰(zhàn)的架構師我想說脫離具體業(yè)務場景談技術選型都是耍流氓。下面這張對比表不是為了分高下而是幫你畫出決策地圖。維度MySQL FOR UPDATE 鎖Redis SETNX 鎖適用場景判斷依據(jù)一致性保證強一致性ACID事務提交前鎖絕不釋放最終一致性網(wǎng)絡分區(qū)時可能出現(xiàn)腦裂兩個客戶端同時認為自己持有鎖金融、支付、庫存扣減等零容忍數(shù)據(jù)錯亂的場景必須選MySQL性能上限單庫約2000-5000 QPS分庫分表后線性擴展單Redis實例輕松支撐5w QPS集群模式更高日均PV1000萬、QPS3000的中小系統(tǒng)Redis更輕量超大規(guī)模且對一致性要求極高MySQL分片是正解運維復雜度依賴DBA需監(jiān)控鎖等待、死鎖、連接池災備需主從切換運維簡單但需關注Redis持久化、哨兵/集群故障轉移、Lua腳本原子性團隊DBA能力強、有成熟MySQL治理平臺選MySQL若團隊更熟悉Redis且能接受最終一致性Redis更省心鎖粒度控制精確到行但依賴索引設計設計不當易升級為間隙鎖/表鎖精確到key無索引概念粒度天然最細業(yè)務鎖key天然具備唯一性如用戶ID、訂單號且能建立唯一索引MySQL優(yōu)勢明顯若鎖key是動態(tài)拼接如cache:user:123:profileRedis更靈活超時與續(xù)約依賴innodb_lock_wait_timeout續(xù)約需額外UPDATE SQL易出錯SET key value EX seconds NX原生支持超時Lua腳本能安全續(xù)約對鎖超時精度要求極高如必須精確到毫秒Redis的EX參數(shù)更可控MySQL的timeout是全局配置不夠靈活故障恢復主庫宕機鎖服務立即不可用從庫只讀無法獲取新鎖Redis Sentinel模式下故障轉移約30秒集群模式更快系統(tǒng)SLA要求RTO30秒且能接受短暫鎖不可用Redis更優(yōu)若要求RTO0如核心支付通道MySQL主庫高可用MHA/PXC是剛需開發(fā)心智負擔需深入理解InnoDB鎖機制、索引原理、事務傳播學習成本高API簡單setIfAbsent文檔豐富上手快新團隊或項目初期優(yōu)先用Redis快速驗證進入穩(wěn)定期、追求極致可靠再遷移到MySQL我們的真實遷移路徑是起步用Redis快中期用MySQL穩(wěn)后期混合智。例如在某電商平臺商品詳情頁的緩存更新用Redis鎖QPS高、容忍短暫不一致而下單扣庫存環(huán)節(jié)強制切到MySQL鎖強一致性。兩個鎖服務通過統(tǒng)一的LockFactory接口注入業(yè)務代碼無感知。注意不要迷信“銀彈”。我們曾在一個內(nèi)容推薦系統(tǒng)中盲目將Redis鎖全換成MySQL鎖結果因推薦算法耗時波動大100ms~3s導致鎖持有時間不可控innodb_lock_wait_timeout設置成3秒太短頻繁超時設成10秒又導致鎖堆積。最后的解法是對耗時穩(wěn)定的業(yè)務用MySQL對耗時波動大的業(yè)務保留Redis鎖但增加“鎖有效性校驗”——在業(yè)務邏輯執(zhí)行前再次GET鎖key確認自己仍是持有者。6. 踩坑實錄那些讓架構師徹夜難眠的鎖相關故障紙上談兵千遍不如一次真實故障的教訓深刻。我把過去三年處理的5個典型鎖故障還原成排查鏈路告訴你當報警電話響起時第一步該看什么。6.1 故障一凌晨2點支付成功率暴跌至30%現(xiàn)象監(jiān)控顯示lock_acquire_success_rate從99.9%驟降至32%大量支付請求卡在FOR UPDATE上P95響應時間從200ms飆升至15s。排查鏈路SHOW PROCESSLIST發(fā)現(xiàn)大量StateUpdating的線程Info列顯示UPDATE distributed_lock SET ... WHERE lock_key account_XXXXXX—— 鎖續(xù)約SQL在執(zhí)行。SELECT * FROM information_schema.INNODB_TRXTRX_STATELOCK WAIT的事務數(shù)超200TRX_MYSQL_THREAD_ID指向應用服務器PID。登錄對應應用服務器jstack PID | grep -A 20 FOR UPDATE線程堆??ㄔ贖ttpURLConnection.getInputStream()正在調(diào)用一個外部風控接口。查distributed_lock表expire_time字段大量為2023-10-01 02:00:00全是整點時間說明續(xù)約線程在固定時間點集中觸發(fā)。根因風控服務在凌晨2點進行例行維護所有請求超時。但我們的鎖續(xù)約線程未設置超時導致UPDATE語句在網(wǎng)絡超時后仍長時間占用數(shù)據(jù)庫連接阻塞了新的鎖獲取請求。修復為所有外部HTTP調(diào)用增加connectTimeout3000、readTimeout5000在續(xù)約線程中增加Thread.interrupt()保護超時后主動中斷將續(xù)約頻率從“固定間隔”改為“基于鎖剩余時間的動態(tài)間隔”剩余時間10s間隔5s剩余時間10s間隔1s6.2 故障二用戶投訴“錢被扣了兩次”現(xiàn)象財務對賬發(fā)現(xiàn)同一筆訂單在10分鐘內(nèi)被扣款兩次t_payment表有兩條相同order_id的記錄。排查鏈路查payment_log兩條記錄create_time相差8秒status均為SUCCESS。查distributed_lock對應lock_keyorder_789012的記錄holder字段為payment-service:12345和payment-service:67890兩個不同PID。SELECT * FROM information_schema.INNODB_LOCK_WAITS空說明沒有死鎖是正常獲取。深挖payment-service:12345的日志在FOR UPDATE后執(zhí)行INSERT INTO t_payment前發(fā)生OutOfMemoryErrorJVM崩潰。payment-service:67890的日志在FOR UPDATE后未檢測到payment-service:12345的鎖持有因進程已死連接斷開鎖被InnoDB自動釋放成功獲取鎖并扣款。根因JVM崩潰導致事務未提交鎖被自動釋放但業(yè)務邏輯未做冪等校驗第二個請求進來后認為自己是首次處理。修復所有扣款接口增加冪等key如order_id timestamp在INSERT t_payment前先SELECT COUNT(1) FROM t_payment WHERE order_id ? AND status SUCCESS在LockResult中增加isHeldByCurrentProcess()方法通過SELECT holder FROM distributed_lock WHERE id ?實時校驗業(yè)務邏輯執(zhí)行前必須調(diào)用6.3 故障三數(shù)據(jù)庫CPU 100%SHOW FULL PROCESSLIST全是Sleep現(xiàn)象MySQL CPU持續(xù)100%SHOW PROCESSLIST顯示數(shù)百個StateSleep的連接Time列顯示連接已空閑3600秒以上。排查鏈路SELECT * FROM information_schema.PROCESSLIST WHERE COMMAND ! Sleep無活躍連接說明問題不在SQL執(zhí)行而在連接管理。SELECT * FROM information_schema.INNODB_TRX空說明沒有長事務。檢查應用服務器netstat -anp | grep :3306 | wc -l顯示連接數(shù)達800遠超HikariCP配置的maximumPoolSize50。jstack PID | grep com.zaxxer.hikari發(fā)現(xiàn)大量線程卡在HikariPool.getConnection()等待連接。根因HikariCP的connection-timeout配置為30秒但應用層Transactional的timeout60。當數(shù)據(jù)庫響應慢時連接在池中等待30秒超時后被丟棄但業(yè)務線程仍在等待事務完成導致連接池不斷創(chuàng)建新連接最終耗盡。修復統(tǒng)一超時Transactional(timeout25)HikariCP.connection-timeout20000innodb_lock_wait_timeout15增加連接池監(jiān)控HikariCP.getMetricsTrackerFactory()上報activeConnections,idleConnections6.4 故障四分庫后部分鎖key總是獲取失敗現(xiàn)象分庫分表上線后約5%的鎖請求返回LockUnavailableException但lock_key在對應庫表中確實存在。排查鏈路抓取失敗的lock_key手動計算哈希Math.abs(account_123456.hashCode()) % 4 2應路由到ds_2庫。登錄ds_2庫SELECT * FROM distributed_lock_0 WHERE lock_key account_123456記錄存在。EXPLAIN SELECT * FROM distributed_lock_0 WHERE lock_key account_123456 FOR UPDATEtypeALL未走索引查distributed_lock_0表結構lock_key字段為varchar(128)但建表時未指定字符集MySQL 5.7默認utf8而應用傳入的key是utf8mb4編碼。根因字符集不匹配導致索引失效。utf8mb4的account_123456在utf8索引中無法匹配FOR UPDATE退化為全表掃描觸發(fā)臨鍵鎖最終因鎖等待超時失敗。修復ALTER TABLE distributed_lock_0 CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci所有分表執(zhí)行ALTER TABLE ... MODIFY COLUMN lock_key VARCHAR(128) CHARACTER SET utf8mb4 NOT NULL6.5 故障五大促期間鎖表被“撐爆”現(xiàn)象大促高峰distributed_lock表數(shù)據(jù)量從100萬暴漲到5000萬磁盤使用率95%INSERT操作變慢。排查鏈路SELECT table_name, table_rows, data_length FROM information_schema.TABLES WHERE table_schema xxx AND table_name LIKE distributed_lock%單表行數(shù)超600萬。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
国产又黄又粗的视频| 色香综合天天影视综合| 亚洲aw毛茸茸在线| 男人天堂新| 色综合久| 日本一区不卡| 久久99999| 黄色操人| 精品-91人妻子系列| 韩日自拍| 91偷拍欧美亚洲| 黄片国产精品一区二区| 亚洲国产亚洲天堂| 性爱乱伦网址| 久久神马| 黄色av播放免不| 日本加靬比网站发布页| 色女网日韩| 人人操人人插人人摸人人干| 日日摸日日弄日日拍| 亚洲第一页色| 亚洲色图尤物视频 | 97综合激情| 人妻AV在线| 老熟女乱伦片| 国产丁香精品露脸视频| 亚洲国产精品久久久久婷婷青年| 午夜AV人气不卡| 精人妻一区二区三区| 综合97久久| 欧美日韩一干二干| 女同亚洲欧美一二三区久久电影| 二男一女成人A片| 啪啪啪综合网| 韩三级a视频在线观看| 成人性交免费视频| 亚欧美综合网。| 人人干人人操人人爱| 最新av在线| 综合视频91| 亚欧精品久久久久久久久久久| 视频国产欧美在线播放| 本道综合精品| www欧美91| 亚洲欧美骚| 亚洲色交| 五月婷亚洲精品天堂| 中文久久| 欧美精品23| 日韩操p| 国产精品 视频| 欧美91久久久久| 97天天爽| 98一区二区精品| 国产天天骚| 国产视频一区二区在线| #NAME?| 日韩av女优在线免费一区| 欧美日韩91| 熟女探花啪啪| 丝袜色综合| 色网综合网| 蜜区区视频79 | yazhouzaixian| 极品五月天噜噜| 99re6久热只有精品6在线直播 | 天天操av懂色| 黄色不卡视频| 欧美v日韩v亚洲v最新在线| 亚洲**2021在线观看| 精品国产91内射久久| 欧美精品成人在线播放| 噜噜吧,噜噜色,噜噜| 无码99| 国模少妇一区二区三区| 丰满搜索结果 -第18页- 久久高清无码| 激情综合婷婷| 性色国产东北露脸精品视频| 91亚洲网| 992这里有精品| 超碰亚洲97| 啊啊啊97视频| 极品综合| 欧美老熟另类| 夜夜做夜夜爽精品视频| 99亚洲精品| 日韩在线地址一| 亚洲欧美日韩夜夜| 91骚妇| 青娱乐蜜桃臀AV色婷| 人妻美腿丝袜日韩| 日韩黄片影院| 禁片 高清 在线观看视频网站| 伊人久久大香线综合无码| 性欧美91| 色性综合| 久久精品人人做人人看| 高清无码网址| 日韩十八禁| 最近2019中文字幕国语免费版| 自拍偷拍 日韩无码| 91 手机在线播放 绯色| 欧美成人贴图| 99操视频| 蜜臀久久在线视频| 97免费视频在线观看| 丰满人妻无码一区二区三区| 啊啊啊啊视频免费| 日韩一级二级三级| 天堂九九九九九九九九九| 加勒比综合a∨| 高清无码在线播放网站| 亚州熟妇精品| 啪啪视频亚洲第一| 秋霞男人网| 91美女在线| 乱伦系列一区二区| 国产原创精品| 99无码| 开心五月天激情网| 91精品婷婷国产综合久久竹菊| 亚洲欧美一区二区不卡视频播放| 中文字幕一二三| 日韩无码操逼片| 熟女一区二区| 日欧操屄| 和协无码影院| 91社区伊人| 97超碰美国| 91欧美经典| 亚洲图片 91| 男人的天堂va| 国产精品久久久久久久久AV大片| 97少妇人妻中文字幕久久| 天堂69亚洲精品中文字| 嗯嗯啊好大| 蜜乳AV.COM| WWW.加勒比人妻一区不卡.com| 蜜臀AV秘一区翔田千里| 久久一本大香蕉| 91久久精品中文字幕| 动漫片子网站3黄| 久久精品国产精品一区| 色婷婷A V一二三四区麻豆综合| 国产精品麻豆免费视频| 国模久久在线| 成人贴图日韩欧美| 无码丰满熟妇一区二区浪潮AV| 啊啊啊啊啊啊啊在线| 久操视频资源站公开| 久艹免费| 五月天综合网| 亚洲春色欧美激情自拍| 青青草原成人| 91亚·色| 国产精品一区午夜福利| 老鸭窝成人| 国产极品一区二区三区三州| 国产精品久久久久久久久久久久久久吹| 天天欧美欧美亚洲网| 国产精品第一区第一页| 午夜福利 成人 91| 少妇第一页| 亚洲操操| 欧美黑人精品在线播放| 91欧洲国产成人久久精品网站| 大奶尤物鲍汁淫荡欧美视频粉嫩夜夜骚| 手机在线播放国产福利| 国内外内射高清视频| 大香蕉啪啪啪啪在线| 色官网在线| 东京男人天堂| 久日综合网| 啊a一区在线| 激情国产乱伦Av| 校园春色五月天| 亚洲天堂人妻一区二区| 屌逼麻豆| 欧美日韩999| 欧美成人A天堂片在线观看| 日韩精品亚洲一二三| 日韩激情视频| 亚洲图片欧美制度| 免费视频无码| **一级毛片国产| 91亚洲欧美激情| 欧美丝袜中文字幕07在线| 久超超碰| 久久综合久久综合人久久夜精品| 伊人AAA| 久久精视频美日韩在线视频| 黄色免费网| 久久九操在线观看| 区一二区日韩亚洲乱码av电影| 在线岛| 欧美天天| 日本在线观看网址| 婷婷五月天激情四射| 干美女人妻| 欧美影音在线| 欧美国产一区二区三区麻豆传媒 | 欧美大战久久久伊人| 久久久久久性爱视频| 五月婷婷综合在线| 草b在线 | 在线观看啊啊啊啊啊| 青青草视频导航官网| 日韩美女久久一区二区三区| 97视频620| 亚洲男人的天堂一区二区| 东京热男人的天堂网| 久久精品国产亚洲AV成人直播| 国产精品久久久久久无码红治院| 岛国激情视频在线观看| 51一区二区三区| 精品传媒在线一区| 天天综合网在线观看| 一二区在线观看视频| 狠狠操狠狠燥| 亚洲综合嫩| 性交一区二区在线播放| 日韩熟女视频二区| 精品日韩产品在线,日韩在线不卡视频,欧美日韩免费专区/久, | 亚洲欧美一区二区网址| 1人人看人人摸人人操| 国产多人在线观看视频| 91c色| 夜夜影视四色| 级做a爱无码性色永久免费| 99久久精品无码一区二区毛片免费| 综合伊人网12色| 澳门黄片一香蕉视频| 欧美一区二区三区四区综合| 日韩一级特黄av毛片| 五月丁香社区婷婷日韩欧美精品影院 | 91天美传媒精品| 久久超碰大香蕉| 蜜桃久久久久久久久久久久| 久艹99| 国产精品欧美在线观看| 国产无码三级视频在线观看| 日日摸夜夜夜夜爽| 婷婷五月天小说| 熟妇人妻一区二区 | 370p日韩欧美亚洲精品| 操婷婷逼| 97色爱| 操老熟女AV| 97色碰| 国产精品网址| 夜色五月天| 超碰综合色| 91观看 国产白丝| 在线观看一级α片刺激高潮视频| 亚洲日韩成人性爱视频| 91网亚洲| 亚欧美色| 天天干天天狼在线视频| 性性久久| 大肥女高潮bbwbbwhd视频| 无码人妻精品一区二区中文| 九九人人操| av东京热男人的天堂| 狠狠色五月亚洲91| 日本三级一区二区 在线| 欧美精品自慰系列寂寞少妇 | 久久久久97| 国产一区二区av综合| www.狠狠干.coom| 九九综合网| 亚洲性爱成人| www鬼畜国产男人的天堂| 亚州日韩97| 国产强奸AV在线| 九九aV| 国产91丝袜在线播放蜜月| 视频国产成人精品日本亚洲18| 亚洲乱熟女一区二区三区大香蕉| 熟女色图在线| 国产辣妈在线视频福利| 深夜啪啪啪视频免费| 日日玩天天干| 亚洲最大AV网| 精国久久一区二区三区98| 影音先锋每日最新资源在线观看 | 欧美亚洲丝袜人妻制服中文99| 一区二区三区成人高清视频| 九九九久久久久| 东北少妇高潮zzzz| 用力操死我| 亚洲欧洲激情卡通另类文学四射小说网站 | 国产精品嫩草久久久久| www.AV有限公司一区| 黑人娇小av在线播放| 久久乐| 97色香蕉| 亚洲在线A| 熟女五十路一区二区三| 青青草中日韩在线| 日本三级R| 综合性视频99| 国产精品一二三在线看| 天天拍天| 精品久久99| 久久97视频| 2024人人操人人摸| 亚洲中文字幕熟女少妇一区二区| 久热超碰| 中文字幕三四区| 久久国产三区| 欧美爱三级日韩久久| 国产久久日韩网站导航| 久久直播国产| 精品无人区麻豆乱码1区2区图片| 99综合视频一体| 精品国产乱子伦一区二区三区,精品一 | 九一屌逼| 永久免费发布性爱网| 91性| 凹凸视频特色日本特黄| 国产主播福利| 国产精品乱码久久久久久| 色香色欲天天综合网天天来吧 | 防屏蔽在线视频| 亚洲午夜未满十八勿入网站日本又色又爽又黄 | 日韩在线视频1234| 思思热久久成人| 精品制服美女中文一区二区三区| 91久久久久久久久久久| 久操凹凸视频| 亚洲一区二区AV| 草伊人高潮喷水超碰| 国产av波波国产精品| 超碰在线综合97| 91婷婷伊人狠人| 日韩卡一卡二卡三在线| 搡老女人老91妇女老熟女| 超碰人妻中文在线| 婷婷精品视频| 国产三级在线现体验区| 怡春院久久| 欧美情色男人的天堂| 日本Xx性爱| 亚洲性天堂| 91爱做| 天天欧美欧美亚洲网| 2017人人操,人人摸| 激情婷婷丁香网| 亚洲国产剧情少妇激情| 五月天激情影院| 在线无码网站| www.色婷婷| 日韩精品国产一区二区| 青娱乐淫乱1314| 99re在线视频| 国产亚洲色婷婷99精品91| 丁香六月婷| 日韩一区二区三区四区五区| 一起草三级AV电影在线观看 | 人妻-91porn| 中文字幕一区二区三区字幕| 久操免费在线| 国产精品白丝www| 久久99精品九九久久久婷婷| 亚洲三级网址久久最新| 人妻嗯啊啊在线播放| 欧美日本一区二区a人| 2021国产成人精品久久| 校园春色五月天| 美女天天干| 91青青在线视频| 97久久久精品| 丝袜天堂| 亚洲熟妇无码一区二区三区| 一区中文字幕二区日韩| 东北夫妻性偷拍| 久久久久久久人妻| 国产成人久久久精品免费AV| 97人妻免费中文字幕| 370p日韩欧美亚洲精品| 国产精品视频麻豆入口| 岛国视频一二三区| hd成人一区二区在线| 免费αⅴ在线观看| 黄色一级视| 黄aaaaaaaaaaaaaaaaaa色网站| 萌白酱自拍视频| 八戒无码国产午夜福利| 3P乱轮视频| 青娱乐亚洲自拍| 一区二区三区视频国产免费| 大香网站| 免费一级毛片在线视频观看| 大香蕉伊人久久| 久久人妻精品| 日本久久久久久久久| 欧美大香蕉卡久久| 午夜福利区| 国产1727欧美| 中韩中文字幕在线观看| 91亚洲欧洲| 97免费视频在线观看| 男女做爰猛烈动高潮A片免费应用| 久9re热视频这里只有精品| TS人妖另类精品视频系列 | 78久久久| 国产女主播视频在线观看| 一本一道久久综合久久| 久久久久久九九九| 国产乱伦性爱区| 四虎影视永久在线免费| www.狠狠| 操一区| 欧美成人精品一区二区男人蜜臀| 男人综合网| 久热影视| 人人操AV| 日韩大香蕉精品在线视频| 97精品视频在线| 久久啊啊| 国产一区二区精品久久99| 欧美系列在线一区二区| 欧美亚洲性爱一区二区| 亚洲天天影视色综合| 午夜精品探花| 97青青操视频| 久久亚州大香蕉| 亚洲精品国产精品成人| 熟女人妇一区二区三区| 免费看黄视频亚洲网站| 婷婷日韩一区二区三区中文字幕在线| 久久久免费高清中文视频| 色五天伊人| 久操视频免费观看| 日本中文字幕在线视频 | 伊人亚洲综合| 亚洲色图激情小说| 超碰在线99| 能看的av| 国产亚洲深夜激情| 蜜臀无码一区二区| 大香蕉伊人一区在线观看| AV不卡在线| 亚欧国产无码精品在线| se吧提供91精品国产91久久久久久 | 天堂岛av| 69精品久久久久中文字幕| 另类老少妇| 91精品人妻一区二区-全集完整版免费正片国语-B02AV | 强奸乱伦动态污图免费 | 色婷婷激情| 免费啪啪一级视频| 极品综合| 高清国产无码av| 麻豆天美传媒毛片| 91色欧美| 91 丝袜在线播放| 伦理第一页| 97视频免费在线| 成人天天爽| 亚洲欧洲色情高清| 午夜精品久久久久久久99热影院| 一本一道人妻久久一区二区三区| 91性| 亚洲一区制服诱惑| 老熟乱一区二区三区四区| 亚洲91亚洲| 1二区9| 校园春色中文字幕AV| 黑人中出21连凳花野真衣| 欧美精品91| 动漫区日韩区欧美区| 亚洲永久永久永久永久一级一级一级精品| 熟女在线视频| yazhououmeizongya| 天天日天天操VV| 久久五月份| 久久熟女人| 亚洲综合小视频小说在线观看| 久久亚洲熟妇在线视频| 我爱操| 麻豆成人影音在线| 亚洲91在线播放影院| 日韩av乱伦| 深爱激情五月天| 爱干爱射网啊啊啊| 久久夜夜| 91原创在线观看| 裸体美女免费看网站青草| 国产一级久久久| 人妻另类| 国产一级不卡在线观看| 黑丝内射一区二区三区| 粉嫩久久久久| 四虎在线观看视频| 国模不卡| 另类在线| 福利在线视频一区二区| 男人久久天堂| 久久一区二区三区入口| 啊啊啊com| 日日躁天天躁狠狠躁| 色吧5亚洲| 乱伦AVxx| 99re6国产精品99re| 国产激情视频一区区三区| 少妇一级婬片免费放一级a性色.| 亚洲不卡不卡中文字幕不卡| 国产人人干| 国产女同视频在线播放| 日韩ab网| 另类小说综合网| 操逼内射干逼白丝91| 91搡老女人老妇女老熟女歌词翻译| 国产日韩欧美三级片| 91亚洲欧美综合高清在线| 家庭乱伦网站国产| 精品九九国产无码| 黑人综合色| 久久精品美女一区| 人妻丝袜日本| 蜜臀久久99精品久久久久久久久| 九九九九九九视频免费| 久久久久久久久久久久久久久乱码| 欧美天天干| 亚洲九九视频| 韩国免费播放一级毛片| 99re这里只有精品3| 成人无遮挡毛片免费看| 天美传媒AV国产在线| 国产操逼视频在线观看| 91插B网站| 97精彩视频网站| 北约熟女超碰| 久久精品99| 青青草日韩无码| 欧美A片中文字幕| 久久激情视频| 成人天天看站长推荐| 亚洲Av无码成人精品国产| 北约熟女超碰| 日韩熟妇二区| 午夜福利一区二区影院| 丝袜狂射91| 精品国产乱码久久久久久久久1| 立川理惠被中出无码| 五月婷婷青青草娱乐伊人| 夜夜操二区| 久久人人舔人人爽舔人人av片| 91丨人妻丨国产丨丝袜| 男人天堂新| 97一区二区三区视频| 毛片视频白嫩| 亚熟在线| 污污污8888| 91在线国产后入风骚翘臀美女素人| 亚洲图片色图欧美另类| 亚洲精品一区二区日本| 97超碰人妻| 亚洲做性| 久久久精品,3| 亚洲综合另类色图| 人伦四五区| 日韩无码服务区| 亚洲熟女偷拍在线观看| 大香蕉欧美国产日韩高潮| 日韩成人午夜精品久久高潮| 一区二区三区视频| 成人免费不卡在线视频| 欧美亚洲中文字幕| 婷色五月天| 婷婷日韩一区二区三区中文字幕在线| 婷婷久草一区二区三区| 6080yy午夜理论三级一区二区三区无码| 亚洲激情AV| 日韩在线AB| 曰本91情色| 941超碰| 蜜臀久久99精品久久久久久成人小说| 一区二区三区四区五区久久久久久| 五十路人妻在线| 久久久青草青青国产亚洲免观精品高清完整版_97久久综合区小说区图片区,国精品 | 精品人妻丰满熟妇一区二区三| 2017亚洲天堂| 中文字幕久热视频在线| 亚洲综合色婷婷| 久久25| 超碰社区97| 91久久久亚洲| 操逼网免费无码视频| 天天操av懂色| 天天综合网~91| 亚洲日韩视频二区| 色偷偷人人玩人人舔人人操人人摸人人爽 | 校园春色亚洲| 99热婷婷| 91热色| 人人艹亚洲| 116美女午夜| 国产97综合| 国产精品日韩在线一区| 翘臀vidoes| 久久9免费视频| 亚洲码在线中文在线观看| 成年人黄色小视频网站| 国产精品视频电影| 精品无码秘 人妻一区二区| 九九无码| 84YTCOM性无码| 久久天天摸| 亚洲AV无码乱码| 久久9视频| 精品一区99999| 亚洲一本大道中文字幕无码在线| 97就爱干| 婷婷久月| 色97干| 日本 成 人 小说 电影 一区二区| 91制服丝袜中文字幕| 色情综合| 亚洲欲色| 精品免费1| V A在线| 国产又大又粗又长视频| 亚洲精品啪视频| 精品性爱一二三区| 91成人无码| 毛片99-全集电影手机免费观看完整-B029AV| 97在线青| 97超碰超| 欧美色图20p| HEYZO高无码国产精品227| 精品无码产区一区二| 91天堂色男人的天堂| 新91视频.cmp| 国产性感在线观看| 日本不卡三级网在线播放| 亚洲美腿丝袜香蕉影视欧美成人| 五月综合色| 亚洲一区二区三区春色| 99re这里| 中文高清一区二区的| 青椒国产97在线熟女| 大学生美女口爆| 97se综合| 国产精品熟女九九九| 六月丁香网| 333kkkk·亚洲com久久| 欧美成人性爱视频在线播放| 尤物网址| 无遮挡男女激烈动态图| 99蜜月精品久久| 丝袜熟女2P| 久久精品人体AV| 特级毛片特黄久久免费看| 五月亭亭六月丁香| 欧美成人免费在线观看| 欧美色青| 欲香欲色| 国产精品久久久久久亚洲色欲| 69久久| avav青青草久久夜| 大香蕉伊人75| 精品传媒在线一区| 夜夜夜爽www精品视频| 色悠久久久av| 青青青草原| 色欧美在线| 久久夜夜| 欧美成人性爱视频在线播放| 人妻铁牛TV| 欧美男人天堂| 日日摸夜夜夜夜爽| 亚乱色| 色哟哟av网址| 精品视频在线观看| 日韩精品亚洲一二三| 成人草草视频| 中国操逼无码| 大香网伊人久久综合| 日本一片一区| 偷拍亚洲| 亚洲日韩成人性爱视频| 91亚洲精品青草| 成人资源中文字幕在线观看| 色色色日本| 国产人妻精品久久久一区二区三区| 大香伊人在线一区| 色吧91| 伊人国产视频| 色逼综合| 丁香六月天| 夜夜嗨一区| 在线观看综合精品亚洲| 久久久久久波多野吉衣高潮| 亚洲国产97| 91超级碰碰| 蜜臀久久99精品久久久久电影| 亚洲国产欧美一区二区潘金莲 | 伊人影院综合是一个与深夜成人在线| 成年女人一区| 蜜臀久久99精品久久久久久-DVD| 国产精品探花视频| 天天操天天谢| 国产高清精品福利| 亚洲色天堂九9| 综合色啪| 色妇综合网| www.狠狠干.coom | 99re3这里只有精品| 色汉综合| 久久久久久中文版| 男女日B国产| 嗯嗯啊啊好疼| 377p欧洲日本亚洲大胆| 欧美中字不卡| 人人扣人人操| 久久久久久久免费A片国产成a人亚洲精∨品无码 | 999综合色| 精品在线观看视频在线| 9I1性色影院| 99国产精品人妻人伦| 91久久免费视频互動交流| 婷婷情色五月天| 日韩人妻一区二区精品| www.大香| 国产午夜激片Av毛片不卡| 大香蕉一线视频| 色色99| 天天操夜夜嗨| 青青草中出视频| 日韩AV一区二区三区四四| 亚洲图片欧美| 日韩精品人妻中文字幕久久久| 国产精品一级毛片不卡视| 天天干夜夜肏| 日韩99神马视频播放片在线播放| 婷婷五月天激情网| 天天亚洲| 国产偷人妻精品一区二区在线| 日韩午夜啪啪视频| 国产AV色黄看到爽| 久久久一区二区| 99这里有精品视频| 乳欲人妻办公室奶水| 午夜影美女日鸡鸡天天视频国产| 中文字幕三四区| www.久久超碰| 走光一区92下载| 国产人伦精品一区二区三区| 日本99久久| 丝袜熟女一区二区三区| 乱伦a片视频| 久久男人的天堂| 五月天久久人妻| 亚欧洲一区二区视频| 另类天堂| 日本三级R| 99久久久er直播网址| 午夜精品久久久久久久久久蜜桃| 99热精品在线观看| 校园春色美腿丝袜 | 精品999999| 天啪| 国产精品99999| 1000部熟女视频在线观看| 九九九不卡| 校园春色美腿丝袜 | 欧美第五页| 一卡二卡在线播放| 日韩精品一区二区人人人| 欧美色爱综合| 2024年最新色情网站在线观看| 亚洲成人在线高清| 操操操日本的逼| 美国aaaaa一级黄片| 国产一区二区欧美日本| 婷婷五月天影院| 久操B网| 久久日本熟女精品一区| 色综合99999| 99热在线只有精品| 在线免费观看高清无码视频| 成全在线观看免费观看| www.色婷婷| 禁十八久久| 东京热,男人的天堂| 最新av中文字幕高清| 噜噜噜无码AV一级一级久久影院| 精品人妻1237| 深夜激情 | 亚洲天堂自拍| 超碰日韩美妻| 精品国产一区探花在线观看| 亚洲91在线播放影院| 91黑丝少妇| 欧亚 另类 久| 天堂中文资源在线bt| 精彩国产视频播放1区2区| 先锋女优在线观看视频| 日本www操操操| 最新av在线| 亚洲欧美电影| 久久精品一区二区三区不卡| 狠狠干2020| 伊人久久综合精品欧美| 一区二区三区日韩欧美 | 免看60秒涩涩视频| 欧美极品美女aaaaaa级黄片| 再深点灬舒服灬太大了好硬好爽| 欧美97在线观看| av网站国产主播在线| 久久九九综合| 加勒比中文av| 日韩偷拍色图| 国产成人99久久亚洲综合| 国产原创精品| 亚洲电影中字一区二区| 91撸色网 玖玖网 欧美| 亚洲一区中文精品| 精品十三区| 大JI巴好深好爽又大又粗视频| 猛交交| 极品国产内射| 97精品视频网站| 亚洲最大无码中文字幕网站| 天天日天天干少妇日| 无码99| 又粗又长又爽在线观看| 欲综合网| 亚洲色欲一区二区三区| 国产精品久久久久无码A√| 在线黄色污污网站| 天天躁日日躁AAAXX| 91人人| 欧美激情久久久久| 深夜操逼网| 欧亚性爱视频免费看| 97欧美在线| 欧美与日韩97| 日韩熟女精品无码专区一区二区| 欧美极品性爱天天射| 综合欧美色图| 韩国女主播青草在线| 99热网站| 90后性网国产欧美| 超碰色男人操熟女| 麻豆久久精品亚洲精品88| 屁股久久久久久久久| 日本国产二线女色| 91人妻Pr| 国产精品久久久久久片| A片大香蕉在线| 密臀成人视频久久久| 午夜福利区| 超碰色中文| 欧美三级中文字幕hd| 久久黄片国产一区二区| 加勒比综合| 91情色| 一道α片欧美| 91av一区二区在线观看| 亚洲AV成人无码一二三久久| ,成人免费啪啪视频| 天天看天天干| 欧美一二三级精品在线| 国产隔壁老王影院在线| 日本高清视频xxxx| 久久精品福利影院| 国产高清免费不卡av| aⅴ日韩成人电影av在线免费看av大全 | 日韩无码精品综合久久| 日韩av不卡在线看| 国产三级日产三级韩国三级| 亚洲AV无码成人精品久久| 天天看,天天做| 色色激情| 天天看特黄的免费网站| 精品人妻无码一区二区三区不卡-精品人妻无码一区二区...|精品少妇一区二区三 | 麻豆 亚洲 97| 亚洲一二三四区在线免费看视频| 精品玖九九久| 午夜精品久久久久久久久久蜜桃 | 亚洲 欧美 综合 91| 337p大胆噜噜噜噜噜91Av| 99久久e免费热视| 丰满少妇一区二区三区专区| 日日夜夜草草草| 人人妻人人澡人人爽人人精品浪潮| 日韩精品亚洲一二三| 亚洲国产一级黄色视频| 欧美综合区| 久久大线蕉一区| 男女啊啊啊啊啊| 欧 美 自 拍 偷 拍| 人妻嗯啊啊在线播放| 一牛一区二区三区久久| 欧洲人妻视频| 国产高清MV操逼视频| 丁香六月天| 五月天婷婷社区| 久久性爱精品一区| 日本一区三级韩国| 五月天久久人妻| 另类小色呦| 中文一区二区| 最新av中文字幕高清| 欧美|91色综合| 伊人久久AV诱惑悠悠| 亚洲综合成人网| 91美女视频直播| 九九久久一区二区伦理| 亚洲AV不卡在线观看尤物| 人人摸人人入| 熟女天天干| 欧美日韩大香蕉| 香蕉婷婷| 美女网站91| 后入 亚洲 美女 射| 国产免费黄色一级大片| ss久久| 日韩免费中文字幕视频| 91九色丨国产丨爆乳| 国产精品福利资源在线尤物| 黄总AV色图| 乱伦日本色图AⅤ| 啊嗯嗯啊好大好爽| 五月天久久久| 偷拍精品一区二区三区| 久久久久ab| www五月| 天天综合欧美| 啊好爽快点-国产一区二区三区撒尿在线-成人AV| 少妇人妻太紧太深av| 另类欧美综合| 日韩不卡网操逼中文字幕日韩| 曰韩无码777| 丝袜人妻av一区二区| 亚洲图片在线| 手机av天堂久久久久| 欧美日韩国产高清在线一二三区 | 亚洲精品尤物yw在线影院| 天操老女人| 欧美午夜精品久久久久久超碰| 国产中文大片资源中文字幕| 久久大香蕉97| 日韩av情韩国爱禁区av一区二区 | 精久久久91| 欧插网站| 99视频精品| 久久狠狠色噜噜狠狠狠狠97| 91N综合在线| 一区二区三区日韩欧美| 天天干一干| 色婷婷综合视频| 婷婷亚洲五月***久久| 国产AV毛片| 久久中文字幕一区不卡| 国产极品粉嫩馒头一线天av| 上特色A在线| 凌辱美少妇久久aV| 亚洲男人的天堂va亚洲男人社| 亚洲久草AV色图| 中文字幕午夜精品久久久| 日韩大香蕉精品在线视频| 色综合99999| 嗯嗯啊啊的视频| 综合情欲网| 啊啊啊啊啊啊在线| 人妻9117c| 国产强奸乱伦xd| 脫衣舞一区二区三区| 欧美亚洲另类在线蜜桃| 国产精品视频白浆免费| 五月天色五月| 欧美婷婷久久| 久久久96精品| 视频不卡中文字幕| 无码国产Av| 午夜欧美女人操逼| 嗯嗯啊中文字幕| 99re在线观看| 一区二区视频在看| 9丨亚洲一区二区在线| 日韩成人性爱AV| 性色一线| 91九色丰满高潮| 久久免费少妇| 熟女色综合久久| 激情文学 国产一二三aV| 啊啊啊不要好爽日韩无码一区| 蜜臀一二三区| 色欲无码人妻日韩欧美精品| 激情AV| 人妻五十路在线| 久久成人国产精品| 久久精品国产免费观看99| 好爽,再快点啊哈嗯嗯嗯嗯| 亚洲色婷婷综合久久一区二区三区| 九九碰九九爱97超| 六月色色| 91精品在线播放| 国产亚洲女v在线观看| 丝袜制服字幕在线| 久久久9999| 欧日韩不卡视.频| 日韩内| 亚洲精品色| 传媒在线观看一区二区三区| 一级久久久久久久久久久| 一区二区精品更新提醒| 一级性爱网| 久久综合久久综合人久久夜精品| 人妻天堂网| 91亚洲人电影| 国产强奸乱伦无码视频| 综合色图,成人综合网| 超碰人妻97| 麻豆人妻少妇在线免费观看| 欧美日韩午夜精品一区二区三区| 一区二区三区男女操逼黄色小电影| 日韩av在线精品观看| 久久久不能久久久久| 青娱乐二区免费| 久操大香蕉超碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰 | 97在线免费视频| 国产亚洲人妻综合日韩 久久| 欧美96精品在线| 99re6久热只有精品6在线直播| 97无码视频在线播放| 啊灬快c我灬啊灬用力灬啊灬-国产精品性做久久久久久-成人AV | 99热这里是精品| 国产免费黄色一级大片| 狠综合网| 日本三级韩国三级99| 亚洲国产精品99久久久| 热久久无毒不卡| 中文一区二区婷婷视频| 福利伊人玖玖国产| 国语少妇精| 97就爱干| 97国产色图| 老熟女91av| 五月丁香激情综合| 手机在线视频国内精品| 小说区 图片区色 综合区| 99爱爱| 激情文学 亚洲图片| 吉田爱美AV在线| 国产欧美一区激情交| 99老司机精品视频在线观看| 91色图| 97伊人| 日本人妻一区二区| 色婷婷影院| 国产a级午夜毛片| 久久久久国产精品片区无码直播| 91人妻人人澡人人爽人人精品| 四虎免费在线播放| 97国产精选| 亚洲素人综合| 五月婷婷青青草娱乐伊人| 熟女91网| 日韩在线观看AV| 人人操人人射人人干| 色眯眯av| 久射吧| 后入精品| 69麻豆天美| 久久久久久69国产一区二区| 国产精品人人爽人人做可爱福利| 先锋影音av先锋一区| 色综合天天| 超碰在线人妻| 91亚洲欧美色图| 午夜精品久久久久久久99| 人妻第一页| 操屄日韩| 欧美黄片视频在线观看免费 | 欧美久久人妻少妇一区二区| 少妇精品久久久八区九区| 亚洲久9| 久久久久久电影| 国模吧 一区二区三区| 蜜桃久久综合视频| 91伊人久久在线| 精品97久久| 欧美日韩香蕉| 欧美超碰96| 日本幼女18+| 三级AV入口| 啪啪视频mP4| 精精品人妻一区二区三区| 女欧美一区二三区| 五月天激情小说| 综合激情一一91| 偷拍三区| 丰满少妇人妻久久久久久| 桑老女人九区| 思思热国产在线视频| 日本天天人人狠狠在线日美女 | 久9爱经典视频| 午夜福利在线合集| 夜夜嗷嗷一区二区| 亚洲天天操| 激情五月天婷婷| 超碰在线91| 亚洲久热| 亚洲性高潮| 91国产精品在线看| 大奶的诱惑| 91 刺激在线| 欧美偷拍| 欧美黄色图片| 日韩精品碰碰| 麻豆国产成人精品| 国产探花精品在线| 亚洲青青草| 天天射影院| 无码78| 97精品综合久久| 任你干在线视频| 精品久久久久av影院| 麻豆av一区二区三区| 天天日美女的B| 巨爆乳一区二区爆乳区 | 国模不卡一本二本三电影| 午夜啪| 久久久91福利姬| 久久久999日本大片| 人妻偷拍一区二区三区| 人妻 欧美 中文| 小少妇| 成人性爱美曰韩| 思思热一热婷婷热一热| 超碰人人乐97| 强奸国产精品视频| 久 久无码人妻AV| 97久久超碰国产网站| 伊人黄色视频免费观看| 凹凸视频在线一区二区| 清纯唯美综合亚洲| 夜夜爽妓女| 色播综合| 国产一区二区啪啪视频| 人人玩人人添人人澡免费| chaopen97久久| 欧美一二在线| 夫妻四区五区六区| 欧洲色色| 日本免费一级AAA大片器| 国产美女高潮视频| 蜜臀99999| 日韩人妻少妇 一区二区三区| 成人精品久久久午夜福利| 干妹子| 青木玲在线不卡| 亚洲国产福利视频| 搞中出久久| 日韩国产欧美伦理在线|