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

ARTICLE DETAIL

資訊詳情

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

MySQL中間件Atlas實踐:讀寫分離、分表與踩坑全指南

MySQL中間件Atlas實踐:讀寫分離、分表與踩坑全指南 剛開始看到“atlas”這個名字我腦子里瞬間閃過好幾個東西希臘神話里扛天的泰坦神地圖冊的英文名波士頓動力的雙足機器人Facebook的廣告系統(tǒng)……但如果你是個干后端、搞數(shù)據(jù)庫的大概率第一反應(yīng)是那個曾經(jīng)在國內(nèi)互聯(lián)網(wǎng)圈子里很火的MySQL中間件。沒錯這篇文章的主角就是它——奇虎360開源的數(shù)據(jù)庫中間件Atlas。這個項目源代碼托管在GitHub上奇虎360在2013年左右開源出來定位是MySQL代理層。它的核心價值說白了就是兩個讀寫分離和分表。你可以把它理解成數(shù)據(jù)庫門口的智能分流閘機——讀請求往從庫去寫請求往主庫去還能把一張千萬級的大表按規(guī)則拆成多張小表分?jǐn)偞鎯筒樵儔毫?。在那個MySQL官方還沒出什么像樣的中間件方案、MyCat還沒聲量那么大的年代Atlas確實算是很多團(tuán)隊的首選。這篇東西我不打算寫成一份照抄官方README的說明書而是從實際落地角度出發(fā)把部署、配置、原理、踩坑一條線捋清楚。如果你正在用或者準(zhǔn)備選型Atlas這篇文章能幫你少走不少彎路。文章里所有的操作步驟和配置示例都基于CentOS 7 MySQL 5.7的環(huán)境版本差異比較大的地方我會單獨標(biāo)出來。1. 為什么選擇Atlas一個老牌中間件的價值與邊界先說清楚一個觀點Atlas不是萬能的它解決的問題非常聚焦。但正因為聚焦它在自己的領(lǐng)域里做得相當(dāng)純粹。很多時候我們選型失敗不是因為工具不好而是因為期望值放錯了位置。1.1 解決了什么問題在MySQL主從架構(gòu)里一臺主庫負(fù)責(zé)寫若干臺從庫負(fù)責(zé)讀。如果沒有中間層你的業(yè)務(wù)代碼就得自己感知哪臺是主、哪臺是從。比如你要寫數(shù)據(jù)就得連主庫要讀數(shù)據(jù)就得連從庫一旦主從切換所有連接配置都要跟著改。這在小團(tuán)隊、小業(yè)務(wù)量時還能湊合一旦服務(wù)多了維護(hù)成本就上來了。Atlas就是為了解決這個痛點出現(xiàn)的。業(yè)務(wù)方只需要連接Atlas完全不用理會背后有幾臺MySQL、哪臺是什么角色。你發(fā)給Atlas一條SQL它會自己判斷這條語句該發(fā)到主庫還是從庫然后把結(jié)果返回給你。這相當(dāng)于把“數(shù)據(jù)庫拓?fù)涓兄边@件事從業(yè)務(wù)端下沉到代理層業(yè)務(wù)代碼瞬間變得干凈了。另外一個殺招是分表。單表數(shù)據(jù)量超過千萬甚至億級的時候索引再優(yōu)化也扛不住寫入和查詢的延遲。Atlas支持按某個字段的哈希值取模把一張邏輯大表拆分成物理上的多張小表。業(yè)務(wù)還是按原表名去查Atlas在中間做映射和路由。這確實是解決大表問題的有效手段后文我會詳細(xì)講它的局限在哪。1.2 哪些場景不適合用AtlasAtlas是基于MySQL協(xié)議的代理它天然有一些限制。比如對事務(wù)的支持就不夠完美——開啟事務(wù)后事務(wù)里的語句默認(rèn)還是走讀寫分離規(guī)則如果你的事務(wù)內(nèi)是先寫后讀就可能出現(xiàn)讀到舊數(shù)據(jù)的情況。另一個是跨庫跨表的JOIN和子查詢性能會很差因為Atlas需要把數(shù)據(jù)從多個后端節(jié)點撈回來再做關(guān)聯(lián)。所以這個方案更適合OLTP場景下的簡單查詢復(fù)雜分析類SQL建議直接上專門的OLAP方案或數(shù)倉別在Atlas這里硬扛。我還見過有人拿Atlas做分庫分表之外的“高可用”兜底這個用法其實有點錯位。Atlas本身不是集群方案它自身就是單點。真要防Atlas這臺機器掛掉得靠Keepalived做VIP浮動或者前置一層負(fù)載均衡比如HAProxy來做故障轉(zhuǎn)移否則它一掛整個數(shù)據(jù)庫入口就癱了。1.3 與其他老牌/同期方案對比下面這個表格是我在選型時候做的對比當(dāng)時備選的幾個方案都列出來了便于你有個直觀印象方案讀寫分離分表分庫管理界面協(xié)議兼容性活躍度Atlas支持支持單鍵哈希不支持管理端口命令高基于MySQL原生協(xié)議維護(hù)狀態(tài)社區(qū)活躍度一般MyCat支持支持支持有Web管理高支持多協(xié)議社區(qū)比Atlas活躍但配置復(fù)雜ShardingSphere-JDBC支持支持支持無中間件層嵌入應(yīng)用極高應(yīng)用內(nèi)集成很活躍云原生友好MySQL官方Router支持不支持不支持有API高官方維護(hù)但功能少看這張表你就明白了Atlas對比同期方案最大的優(yōu)勢是輕量、部署簡單、MySQL協(xié)議兼容性好。業(yè)務(wù)幾乎不用改代碼接上就能跑。對比現(xiàn)在的ShardingSphere-JDBC這種應(yīng)用內(nèi)集成方案Atlas的劣勢是功能不夠全、擴展性偏弱但它作為獨立代理層對業(yè)務(wù)代碼的侵入性為零運維維護(hù)上也更直觀。這兩種路線各有各的適用場景沒有絕對的好與壞。2. 核心架構(gòu)拆解讀寫分離和分表在Atlas內(nèi)部是怎么跑起來的知其然更要知其所以然。我把Atlas內(nèi)部幾個關(guān)鍵機制捋了一遍這塊搞清楚了后面配置和排錯會輕松很多。2.1 連接管理前端連接與后端連接池Atlas本質(zhì)上是一個代理但它不是簡單的轉(zhuǎn)發(fā)。它內(nèi)部維護(hù)了兩類連接一類是業(yè)務(wù)程序連接到Atlas的連接叫前端連接另一類是Atlas連接到后端MySQL數(shù)據(jù)庫的連接叫后端連接。這里有一個很關(guān)鍵的機制后端連接是池化的。前端來一個連接Atlas不會立刻向后端建立一個對應(yīng)的MySQL連接而是從空閑連接池里取一個分配給前端。用完歸還。這樣做的好處是避免每個業(yè)務(wù)請求都要進(jìn)行一次完整的MySQL握手認(rèn)證大幅降低后端數(shù)據(jù)庫的連接建立開銷。類比一下就像你去銀行辦事大堂經(jīng)理Atlas不會每次都在柜臺新開一個窗口MySQL連接給你而是把你引導(dǎo)到已有的空閑窗口。窗口數(shù)量是有限的業(yè)務(wù)量再大后端數(shù)據(jù)庫的連接數(shù)也能被控制在合理區(qū)間。我在生產(chǎn)環(huán)境里就遇到過因為連接管理不當(dāng)導(dǎo)致MySQL連接數(shù)被打滿的故障Atlas這個機制幫了大忙。2.2 讀寫分離的判斷邏輯MySQL協(xié)議層玩兒的正則匹配Atlas怎么判斷一條SQL是讀還是寫呢如果你以為它解析了SQL語法那就太小看它了。它的判斷邏輯非常簡單直接對SQL語句進(jìn)行正則匹配。如果一個語句以SELECT開頭去掉注釋、空白符后并且不是SELECT ... FOR UPDATE這種帶鎖的查詢Atlas就把它歸為讀請求其余的全部歸為寫請求。包括INSERT、UPDATE、DELETE、CREATE、ALTER、DROP等凡是修改數(shù)據(jù)或結(jié)構(gòu)的一律走主庫。這里注意兩個容易被忽略的點一是“SELECT ... FOR UPDATE”會被識別為寫請求這是合理的因為FOR UPDATE加的是行級排他鎖必須走主庫二是一些看似讀實則寫的情況比如自定義函數(shù)里執(zhí)行了更新外部套了SELECT。這類SQL會被判斷成讀請求而路由到從庫一旦從庫是只讀復(fù)制狀態(tài)就會報錯。這種邊角情況在業(yè)務(wù)里確實會遇到后面踩坑部分我會專門說。2.3 分表實現(xiàn)哈希取模的規(guī)則世界Atlas的另一個標(biāo)志性功能是分表。它支持的是一種哈希取模的分片策略指定分表鍵shard key和分表數(shù)量N然后計算分表鍵的哈希值跟N取模得到的結(jié)果就對應(yīng)物理分表的表后綴。舉個例子訂單流水表叫T_ORDER分表鍵是ORDER_ID分表數(shù)量是16。那哈希值對16取模的結(jié)果就是表后綴實際物理表就是T_ORDER_0、T_ORDER_1、T_ORDER_2……一直到T_ORDER_15。業(yè)務(wù)插入一條數(shù)據(jù)時Atlas根據(jù)ORDER_ID算出該去哪個分表然后把SQL改寫后路由到對應(yīng)分表。但這里有個極大的坑如果你的分表規(guī)則設(shè)計不合理查詢時沒有帶分表鍵那Atlas就只能對所有分表做全表掃描把每條分表的結(jié)果全部合并返回。這在數(shù)據(jù)量小的時候問題不明顯等數(shù)據(jù)量大了一次查詢可能要打幾十張表性能直接崩掉。所以分表鍵的選擇和查詢習(xí)慣的設(shè)計是分表方案能否跑得好的核心前提比中間件本身還重要。2.4 主庫故障下的主從切換一個需要你提前準(zhǔn)備的動作Atlas自身不具備數(shù)據(jù)庫高可用切換能力。也就是說它只是知道哪臺是主庫、哪臺是從庫如果主庫掛了它不會自動把從庫提升為主庫并修改自己的配置。這需要借助外部工具做故障轉(zhuǎn)移比如MHAMaster High Availability或者自研腳本去觸發(fā)MySQL主從切換然后把Atlas.conf里的Master和Slave配置改掉再重啟Atlas。我看到很多初次使用Atlas的團(tuán)隊都會忽略這個問題默認(rèn)以為Atlas會自己搞定結(jié)果主庫一掛整個服務(wù)直接癱瘓。所以務(wù)必在前期架構(gòu)設(shè)計時就把主從切換的流程想清楚并且做好演練。后面我會專門有一節(jié)講這個踩坑。3. 部署實操從源碼編譯到生產(chǎn)環(huán)境上線Atlas的安裝方式主要有兩種官方提供了編譯好的二進(jìn)制包至少有CentOS和Ubuntu版本另一個是自己從源碼編譯。我強烈建議一般團(tuán)隊直接使用官方二進(jìn)制包省時省力只有需要定制化內(nèi)核或改代碼的團(tuán)隊才需要走編譯這條路。3.1 環(huán)境準(zhǔn)備與依賴檢查操作系統(tǒng)層面我用的CentOS 7 x86_64。依賴方面Atlas需要依賴libevent、glib2、mysql-devel這些基礎(chǔ)庫。如果你下載的二進(jìn)制包在啟動時報缺少動態(tài)庫的錯誤通常就是這些依賴沒裝齊。yum install -y libevent libevent-devel glib2 glib2-devel mysql-devel ncurses-devel建一個專用的系統(tǒng)用戶來跑Atlas不推薦直接用root這是個基本的安全習(xí)慣。useradd -M -s /sbin/nologin atlas mkdir -p /usr/local/mysql-proxy chown -R atlas:atlas /usr/local/mysql-proxy3.2 安裝與目錄規(guī)劃把二進(jìn)制包解壓到/usr/local/mysql-proxy目錄后里面會有bin和conf兩個目錄。bin里是一個叫mysql-proxy的可執(zhí)行文件Atlas的運行就是靠它。注意雖然它繼承了mysql-proxy的名字但奇虎360在原版基礎(chǔ)上做了大規(guī)模改造和MySQL官方的mysql-proxy已經(jīng)完全不是同一個東西了。Atlas啟動之后主要監(jiān)聽兩個端口一個默認(rèn)是1234這是業(yè)務(wù)流量入口就是給應(yīng)用連的另一個是2345這是管理端口運維人員和腳本通過這個端口執(zhí)行管理命令。配置文件放在conf目錄下一般叫Atlas.conf。還有個重要的文件是分表規(guī)則文件默認(rèn)叫shard.conf或者加在Atlas.conf尾部各版本命名有差異按實際來。我習(xí)慣這樣規(guī)劃目錄conf/Atlas.conf —— 主配置文件conf/sharding.conf或Atlas.conf中的分表段 —— 分表規(guī)則logs/ —— 日志目錄包括sql.log和error.logbin/mysql-proxy —— 可執(zhí)行程序3.3 配置文件的詳細(xì)解析下面是一份我在生產(chǎn)環(huán)境中用的Atlas.conf模板去掉了敏感信息每個關(guān)鍵項都注釋了含義[mysql-proxy] # 是否以后臺守護(hù)進(jìn)程方式運行 daemon true # 管理端口綁定的地址和端口 admin-address 0.0.0.0:2345 # 業(yè)務(wù)流量入口綁定的地址和端口 proxy-address 0.0.0.0:1234 # 管理接口的用戶名和密碼用于連接管理端口 admin-username admin admin-password admin_pwd # 后端主從MySQL配置 # 主庫可寫 proxy-backend-addresses 10.0.0.2:3306 # 從庫可讀多個從庫用逗號分隔 proxy-read-only-backend-addresses 10.0.0.3:3306,10.0.0.4:3306 # 連接Atlas自身的認(rèn)證用戶 pwds root:xxxxxx # 分表規(guī)則所在的文件 shard-file /usr/local/mysql-proxy/conf/shard.conf # 日志級別debug級別會輸出每條SQL生產(chǎn)建議用message診斷問題臨時開debug log-level message log-path /usr/local/mysql-proxy/logs # 工作線程數(shù)建議與CPU核數(shù)相同 event-threads 8 # 會話空閑超時時間單位秒 wait-timeout 60這里面有幾個容易踩坑的地方第一pwds是連接Atlas的認(rèn)證用戶配置格式是“用戶名:加密后的密碼”。這里的密碼不是明文是MySQL加密后的密碼串。怎么獲取在MySQL服務(wù)器上執(zhí)行SQL來生成SELECT PASSWORD(your_password);把返回的那一串密碼填進(jìn)去。千萬不要直接填明文否則Atlas會拒絕認(rèn)證。這是新人使用Atlas最常見的坑。第二如果暫時不分表shard-file可以留空或不配置。但一旦配置了Atlas啟動時就會強制校驗分表規(guī)則文件的格式格式不對會啟動失敗。3.4 啟動、停止與驗證啟動很簡單/usr/local/mysql-proxy/bin/mysql-proxy --defaults-file/usr/local/mysql-proxy/conf/Atlas.conf注意Atlas默認(rèn)使用/etc/mysql-proxy.cnf作為配置文件如果你把配置放在了別的路徑一定要用--defaults-file指定。而且配置文件要求權(quán)限是0600否則啟動時會報錯。這也算是一個隱蔽坑我遇到過直接復(fù)制配置文件過去忘了改權(quán)限的情況。啟動后驗證兩件事業(yè)務(wù)端口是否監(jiān)聽netstat -tlnp | grep 1234管理端口是否監(jiān)聽netstat -tlnp | grep 2345然后用管理端口連進(jìn)去看后端狀態(tài)mysql -h127.0.0.1 -P2345 -uadmin -padmin_pwd執(zhí)行SELECT * FROM backends;應(yīng)該能看到主庫和從庫的狀態(tài)。正常狀態(tài)下主庫的type是rw從庫type是rostatus是up。為了業(yè)務(wù)流量連通性最好再用一個有業(yè)務(wù)的賬號試連一下1234跑一條簡單的SELECT確認(rèn)讀寫分離生效mysql -h127.0.0.1 -P1234 -uappuser -papppass -e SELECT 1;如果這條能通整體鏈路基本就算起來了。把Atlas注冊成systemd服務(wù)也好寫個啟動腳本扔進(jìn)rc.local也好反正要保證開機自啟。4. 分表與讀寫分離配置實戰(zhàn)讓規(guī)則真正跑起來我見過很多團(tuán)隊部署完Atlas測試讀寫分離正常然后就開始跑業(yè)務(wù)了。但用到分表功能時由于分表配置不正確或使用方法不對上線當(dāng)天就出了線上事故。這一節(jié)我專門把分表配置的前前后后講透。4.1 分表規(guī)則文件到底怎么寫我用的shard.conf是一個Python風(fēng)格的規(guī)則文件核心就是注冊一個函數(shù)函數(shù)返回分表后的表名。例如def main(): # 讀取分表鍵的值 from atlas_shard_rule import * return get_shard_table(4)稍微解釋一下邏輯Atlas的分表規(guī)則文件使用Python語法Atlas在啟動和路由SQL時會加載并執(zhí)行這個文件根據(jù)你寫的規(guī)則確定物理表名。整個配置文件里可以寫多個規(guī)則函數(shù)每個函數(shù)對應(yīng)一種分表模式。函數(shù)的返回值就是實際路由到的物理表名Atlas會用它替換SQL里的邏輯表名。我自己的分表規(guī)則文件一般長這樣def rule_order(): table_name T_ORDER shard_num 16 return get_shard_table(shard_num) def rule_user(): table_name T_USER shard_num 8 return get_shard_table(shard_num)等等這個寫法其實還需要再細(xì)化。前面例子里的get_shard_table內(nèi)部會拿到當(dāng)前語句的分表鍵值再對分表數(shù)量取模。具體使用哪個分表鍵是在SQL語句的WHERE條件里體現(xiàn)的。Atlas會從句法層面解析出分表鍵的值帶入Python函數(shù)函數(shù)計算出目標(biāo)分表名后Atlas再改寫SQL并路由。4.2 建分表的最佳實踐提前建好還是動態(tài)創(chuàng)建Atlas本身不負(fù)責(zé)自動創(chuàng)建分表。你必須在MySQL實例上把所有分表手動建好。假設(shè)邏輯表名是T_ORDER分16個分表你必須先在數(shù)據(jù)庫里創(chuàng)建T_ORDER_0、T_ORDER_1、一直到T_ORDER_15這16張表。每張表的表結(jié)構(gòu)完全一致索引也一致。如果業(yè)務(wù)端有DDL變更也要同步到所有分表上。我強烈建議你在項目啟動腳本里或者在發(fā)布流程里寫一個遍歷建表和遍歷改表的腳本確保所有分表結(jié)構(gòu)完全一致。否則后期排查數(shù)據(jù)缺失問題會痛不欲生。我自己就經(jīng)歷過因為某分表少了索引個別訂單查詢奇慢無比的問題。不同MySQL實例上的分表怎么分布Atlas支持在不同后端MySQL節(jié)點上放不同的分表。比如主庫上放T_ORDER_0到T_ORDER_7從庫上放T_ORDER_8到T_ORDER_15。這種情況下路由邏輯會先根據(jù)哈希值找到分表名再根據(jù)分表名找到對應(yīng)的后端節(jié)點。這個功能在生產(chǎn)上非常有用可以把一個大表的數(shù)據(jù)分散到不同機器上進(jìn)一步降低單機壓力。4.3 分表后SQL編寫的硬性要求分表規(guī)則生效后SQL寫入和查詢時必須帶上分表鍵。我給你的最實在的建議是在項目初期的代碼規(guī)范里就明確下來所有涉及分表的表查詢、更新、刪除必須強制帶上分表鍵。例如-- 錯誤示范沒有帶分表鍵Atlas只能全分表掃描 SELECT * FROM T_ORDER WHERE ORDER_STATUS PAID; -- 正確示范帶分表鍵Atlas可以直接路由到唯一分表 SELECT * FROM T_ORDER WHERE ORDER_ID A123456789;如果確實需要在不帶分表鍵的情況下查詢雖然Atlas會廣播到所有分表再合并結(jié)果但這種操作應(yīng)該被嚴(yán)格控制盡量在業(yè)務(wù)低峰期執(zhí)行或者提前在中間層緩存/搜索引擎里做條件查詢。說實話廣播查詢在分表數(shù)量少比如4張、8張且數(shù)據(jù)不是特別巨大時勉強能用到了16張以上基本就別指望了延遲會指數(shù)級上升。還有一個容易被忽略的點分表鍵不能更新。如果你把某行的分表鍵值改了它的哈希值就變了理論上的位置也跟著變但實際上數(shù)據(jù)還在老分表里查新分表就找不到了。所以一條鐵律分表鍵只支持新增和查詢不支持修改。4.4 讀寫分離加分表聯(lián)調(diào)測試配置完成之后我是這樣做的聯(lián)調(diào)驗證先在主庫上手動插入幾條測試數(shù)據(jù)分表規(guī)則比如ORDER_ID100和ORDER_ID101會路由到不同的分表插入成功后再去各分表確認(rèn)數(shù)據(jù)落位正確。通過在代碼里同時發(fā)讀請求和寫請求觀察Atlas日志里SQL實際被路由到了哪個后端、哪個分表。開啟debug日志臨時觀察在Atlas.conf中把log-level改成debug重啟Atlas執(zhí)行幾條典型的CRUD查看logs/sql.log里的實際路由信息確認(rèn)無誤后再把log-level改回message并重啟避免生產(chǎn)環(huán)境留下大量調(diào)試日志。5. 生產(chǎn)環(huán)境踩坑實錄這些問題網(wǎng)上真的搜不到現(xiàn)成答案在寫這篇文章之前我特意翻了翻以前運維Atlas這段時間積累的排障筆記。有些問題在當(dāng)時花了很大力氣才定位現(xiàn)在回想起來如果早點有人寫出來真的能省很多功夫。下面這些都是我實際踩過的坑按踩坑的頻率和影響程度排個序。5.1 連接全部掛起問題出在backends狀態(tài)不一致有一次線上突然出現(xiàn)大面積請求超時檢查Atlas的backends發(fā)現(xiàn)主庫和從庫都顯示up但業(yè)務(wù)就是卡住不動。后來仔細(xì)排查發(fā)現(xiàn)問題出在MySQL端主庫因為一次大事務(wù)導(dǎo)致臨時表空間滿了所有寫請求堵塞連帶Atlas的業(yè)務(wù)線程全部卡在等待后端響應(yīng)上。當(dāng)時的解決辦法是先把主庫上的慢事務(wù)殺掉等主庫恢復(fù)后Atlas自然就恢復(fù)了。但這個過程我意識到一個很重要的問題Atlas沒有健康檢查機制它不會自動把掛掉的后端從輪詢列表里移出去。你的監(jiān)控系統(tǒng)必須覆蓋到Atlas這一層否則你只會看到業(yè)務(wù)超時卻不知道根源在哪。后來我加了一個定時腳本每30秒檢查一次Atlas的backends狀態(tài)只要發(fā)現(xiàn)某個后端狀態(tài)異常或響應(yīng)耗時超高立刻報警。這類腳本網(wǎng)上沒有現(xiàn)成的統(tǒng)一方案我建議就自己在服務(wù)器上寫個Python腳本連上管理端口拉狀態(tài)推送報警到釘釘或者企業(yè)微信非常管用。5.2 主從切換后Atlas還指向舊主庫這是幾乎每個用Atlas的團(tuán)隊都會遇到的問題只是早晚。當(dāng)主庫宕機你用MHA把從庫提升為新主庫之后必須手動修改Atlas.conf中的proxy-backend-addresses和新從庫地址然后重啟Atlas。我踩過的坑是MHA切換完成后網(wǎng)站還是慢得一塌糊涂。因為舊主庫恢復(fù)了但已經(jīng)變成從庫還在被Atlas當(dāng)成主庫接收所有寫流量新主庫只是作為只讀從庫在背后默默復(fù)制。數(shù)據(jù)看著沒丟但高可用完全失效了。后來我總結(jié)出一套相對順暢的切換流程確認(rèn)MHA完成主從切換新主庫狀態(tài)正常修改Atlas.conf把舊的proxy-backend-addresses改成新主庫地址把舊主庫地址加入proxy-read-only-backend-addresses用mysql-proxy --defaults-file... --reload有些版本是HUP信號嘗試熱加載配置如果版本不支持就重啟Atlas重啟后立刻在管理端口執(zhí)行SELECT * FROM backends;確認(rèn)主從角色正確讓業(yè)務(wù)側(cè)做一輪功能回歸測試確認(rèn)寫入讀取都正常整個切換過程我們后來控制在分鐘級別而且專門做了演練確保操作人員不需要臨時翻文檔就能執(zhí)行。5.3 FOR UPDATE語句導(dǎo)致的死鎖誤判有一次業(yè)務(wù)頻繁報死鎖但數(shù)據(jù)庫自身的死鎖日志根本不顯示任何記錄。查了半天發(fā)現(xiàn)是業(yè)務(wù)代碼里在事務(wù)里用了SELECT ... FOR UPDATEAtlas判斷正確地將它路由到了主庫但由于同一個事務(wù)里的普通SELECT被路由到了從庫瞬間產(chǎn)生了兩個不同的連接一個在主庫鎖定行一個在從庫讀取快照。此時如果主庫的行一直鎖著從庫讀請求依賴的binlog位置就會一直等待業(yè)務(wù)表現(xiàn)為死鎖超時。這個問題的根源是Atlas的讀寫分離粒度太粗它對“事務(wù)內(nèi)語句”沒有明確的黏合機制。解決思路有幾種一是把此類需要嚴(yán)格一致性的查詢都顯式加上FOR UPDATE強制走主庫二是在配置里將所有該業(yè)務(wù)的用戶設(shè)為只走主庫也就是把該用戶加進(jìn)非讀寫分離名單三是修改代碼把事務(wù)內(nèi)的查詢和寫庫操作合并到同一個連接上執(zhí)行。第三種方案最徹底但需要業(yè)務(wù)配合改動。我當(dāng)時是讓業(yè)務(wù)把事務(wù)內(nèi)的讀改成了FOR UPDATE或者干脆在事務(wù)里只做寫操作事務(wù)結(jié)束之后再做查詢。這個方案治標(biāo)也治本至少業(yè)務(wù)保持一致性了。5.4 連接數(shù)被打滿Atlas自身線程和MySQL連接數(shù)的聯(lián)動關(guān)系A(chǔ)tlas默認(rèn)的連接池行為是一個前端連接對應(yīng)一個后端連接。如果業(yè)務(wù)方連接池配置得比較大比如最小連接數(shù)200最大連接數(shù)500同時有多個服務(wù)連同一個Atlas那Atlas到后端的MySQL連接數(shù)會非??鋸?。MySQL默認(rèn)最大連接數(shù)是151很快就被打滿了。解決這個問題需要多端聯(lián)動調(diào)大MySQL的max_connections但要有度別把系統(tǒng)資源拖垮控制業(yè)務(wù)連接池大小不要在連接池里設(shè)置過大的空閑連接數(shù)在Atlas層面event-threads線程數(shù)不要盲目調(diào)大設(shè)成CPU核數(shù)比較合適讓Atlas和MySQL之間保持內(nèi)網(wǎng)通信降低TCP連接建立時間我這里給出一個我經(jīng)過壓測調(diào)優(yōu)后的參數(shù)組合供參考參數(shù)位置參數(shù)名推薦值說明my.cnfmax_connections1000根據(jù)最大并發(fā)和內(nèi)存綜合評估m(xù)y.cnfwait_timeout60讓空閑連接盡快釋放Atlas.confevent-threadsCPU核數(shù)太高反而引入上下文切換開銷Atlas.confwait-timeout60和MySQL保持一致業(yè)務(wù)連接池maximum-pool-size50~100按服務(wù)實例數(shù)和吞吐量評估5.5 分表鍵沒走索引少了一個普通的WHERE條件引發(fā)的慘案分表鍵的選擇也很講究。前面說業(yè)務(wù)查詢必須帶上分表鍵但如果你帶的是個區(qū)分度很低的字段比如狀態(tài)字段那分表本身意義不大因為哈希結(jié)果會集中在某幾個分表上造成數(shù)據(jù)傾斜。更嚴(yán)重的是如果你在建表時沒有為分表鍵建索引那么即使路由對了分表在分表內(nèi)部也會產(chǎn)生全表掃描。分表只是把你的大表變成多張小表但如果你不建索引每張小表依然要全掃。所以設(shè)計表結(jié)構(gòu)時必須把分表鍵納入索引設(shè)計的第一優(yōu)先級。一般建議分表鍵同時是查詢高頻條件比如訂單號、用戶ID。這樣既能精準(zhǔn)路由又能在單表內(nèi)用上索引性能才真正有保障。6. 日常運維與監(jiān)控讓Atlas穩(wěn)定運行的管理手段一個中間件跑起來之后日常維護(hù)工作其實不少。Atlas本身提供的功能有限但用好管理和監(jiān)控手段還是能過得比較從容。6.1 管理接口的實用命令管理端口是整個運維的核心入口以下命令是我最常用的-- 查看所有后端節(jié)點的狀態(tài) SELECT * FROM backends; -- 動態(tài)加入一個從庫節(jié)點避免重啟 ADD RO BACKEND 10.0.0.5:3306; -- 動態(tài)下線一個后端節(jié)點常見于數(shù)據(jù)庫實例維護(hù) REMOVE BACKEND 3; -- 查看當(dāng)前Atlas的配置信息 SELECT * FROM config;動態(tài)上下線功能特別重要。比如要從庫做備份或者升級直接REMOVE再ADD業(yè)務(wù)側(cè)完全無感知不需要重啟Atlas。6.2 日志是排障的第一現(xiàn)場Atlas的日志目錄下一般有sql.log和error.log。sql.log在log-leveldebug時記錄每一條SQL的路由詳情error.log則記錄運行時的錯誤信息。平時排障我的順序是先看error.log再看sql.log最后看系統(tǒng)層面的dmesg和MySQL慢查詢?nèi)罩?。調(diào)試SQL路由問題時一條典型的debug日志大概長這樣[DEBUG] 2024-05-20 10:15:30: (sql) SELECT * FROM T_ORDER WHERE ORDER_ID 123 - route to backend 10.0.0.3:3306, table: T_ORDER_5看到這行日志你就能明確知道這條SQL被路由到了哪個從庫、哪個分表。如果發(fā)現(xiàn)路由結(jié)果和預(yù)期不符先檢查分表規(guī)則文件再檢查SQL是否帶了正確的分表鍵。6.3 監(jiān)控項不盯這些出了問題只能干瞪眼根據(jù)我對Atlas長期的運維觀察下面這幾個監(jiān)控指標(biāo)至少要有Atlas進(jìn)程是否存活最簡單一個進(jìn)程監(jiān)控腳本或systemd守護(hù)就能解決管理端口能不能連能連說明進(jìn)程本身沒死但可能處在異常狀態(tài)backends里各節(jié)點的連接數(shù)如果某個后端節(jié)點連接數(shù)異常高大概率是有慢查詢堵住了連接池Atlas到后端的響應(yīng)延遲可以用tcprstat之類工具統(tǒng)計Atlas和MySQL之間的網(wǎng)絡(luò)延遲也可以直接在MySQL端開general_log觀察Atlas過來的請求是否變慢分表數(shù)據(jù)分布是否均勻定期抽查各分表的行數(shù)確認(rèn)數(shù)據(jù)沒有嚴(yán)重傾斜這些監(jiān)控項不用全部自己造輪子如果你有Zabbix或Prometheus可以直接接進(jìn)去。Atlas沒有官方exporter我當(dāng)年是用腳本輪詢管理端口拿到狀態(tài)數(shù)據(jù)再轉(zhuǎn)成metrics推到Prometheus畫到Grafana上。效果挺好中間件自身的狀態(tài)一目了然。6.4 高可用架構(gòu)的完整形態(tài)最后說一個理想的Atlas部署形態(tài)避免讀者在搭建時只在單臺機器上跑一個Atlas就以為完事了。我建議的架構(gòu)是兩臺機器各部署一個Atlas實例前置一臺HAProxy做負(fù)載均衡后端的MySQL主從由MHA或自研工具負(fù)責(zé)切換。這樣任意一臺Atlas掛了HAProxy會自動摘除業(yè)務(wù)流量全部轉(zhuǎn)發(fā)到存活的那臺。Atlas本身是無狀態(tài)的代理配置保持一致即可不涉及數(shù)據(jù)同步問題所以高可用實現(xiàn)起來并不難。后端MySQL層面主庫掛了MHA自動切換然后通過外部腳本更新兩臺Atlas的配置。整個鏈路里HAProxy是唯一還需要再考慮高可用的點通常再配一組Keepalived漂移VIP就能解決。這套架構(gòu)跑下來數(shù)據(jù)庫入口層基本就沒有明顯的單點了。業(yè)務(wù)方只認(rèn)一個VIP背后具體是哪個Atlas在扛、哪臺MySQL是主都跟業(yè)務(wù)無關(guān)運維自主可控?;氐紸tlas這個項目本身雖然它不像今天云原生時代的很多新組件那么花哨但作為MySQL中間件領(lǐng)域一個極其務(wù)實的開源項目它的設(shè)計思路和實現(xiàn)方式放到現(xiàn)在的很多場景里依然有參考價值。如果你正在評估輕量級讀寫分離方案或者想理解代理層數(shù)據(jù)庫中間件的工作機制Atlas確實是個值得研究的樣本。最后留一句實在話任何中間件都只是工具用得好不好關(guān)鍵還是理解它背后的路由邏輯和邊界條件。配置照著抄很簡單真正考驗功力的是出了問題之后你能不能從一堆日志里快速定位到它把SQL送到了哪里、為什么會送錯。掌握這個能力比會裝一個Atlas值錢多了。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
亚州高清AV| Julia在线播放亚洲久久| 亚洲情色在线| 97久久久久久久精| 久久免费精品视频免一| 九九热久久99精品re| 精品人妻一区二区三区蜜桃视频| 激情欧美日韩女同久久| 97国产超湿| 国产AV久久野战精品| 亚州欧美在线| 老女人老91妇女老热女| 欧美精品91| 色五月av| 婷婷丁香久久| 久久久久国产精品喷潮免费观看臀| 超碰色老头| 夜夜做夜夜爽精品视频| 天堂伊人久久| 日韩超碰精品综合| 97资源超碰| 日韩精品中文字幕二区| 亚洲av影院在线观看| 国产精品人人爽人人做可爱福利| 东京热男人的天堂精品| 黄片无码在线制服| 操逼操逼逼操操逼91| 不卡中文字幕aⅴ在线| 亚洲精品国产拍免费91在线| 日本天天干天天日一区| 女上位精品在线| 97精品国产手机| 男人干美女| 久久欧美1卡2卡3| 999日韩中文精品观看视频。| 超碰在线国产| 丁香五月天啪啪| 欧亚在线视频| 日本一级黄色电影| 天天综合色| 天天淫人人妻日日色| 熟女人妻av在线资源,黄色的资源| 91|九色|国产熟女| 久久久久久久久久久97| 97日本超碰综合| 国产最新AV| 精品射1999| 青青草伊人久久| 无码视频一区二区| 国产在线激情| 亚洲一级特黄大片在线播放91| 97欧美视频| 成人a v在线播放免费| 男女猛烈无遮掩视频免费软件| 囯戸精品高潮呻吟旡码| α√在线| 狠狠 91| 美女啊啊啊啊pc| 婷婷国产精品九区| 免费看国产大AB| 国产丝袜一区二区三区| 欧美精品成人一区二区在线观看| 欧美性爱第一区| 影音先锋乱| 五月激情啪啪| 国产精品欧美激在线| 日韩图区| 国产色产精品在线观看| 国产1769在线| 国产有码一区| 麻豆91熟妇人妻中文字幕茄子| 久久专区| 无码聚合| 久久蜜色情在线视频xxx免费观看| 91久久久久久久| 亚洲日精品| 国产亚洲精品美女久久久m| 99热只有这里有精品| 玖色AV| 九九国产| A一区片| · —级AA伦aa坐爱午夜极速ⅴA一区天天噪天天噪天天噪 | 成人在线日韩| a片亚洲一本通视频| 中文久久久| 2020中文在线一区二区三区| 97亚洲一区| 日日嗨AV一区二区夜夜| 国产精品无码成人精品| 96精品在线| 丰满人妻一区| 国产亚洲深夜激情| yazhousetuoumei| 日本三级精品| 国产a级午夜毛片| 欧美18禁91| 综合亚洲网| 色呦呦呦在线观看视频| 小草av不卡亚洲二区 | 亚洲欧美精品一区天堂久久| 九九人妻| 国产白嫩漂亮KTV在线| 国产剧情一区在线观看| 男人的天堂2019| 综合欧美日本三级| av东京热男人的天堂| 好吊色综合| av国产无码| 农村妇女精品一区二区| 亚洲另类欧美精品| 久久鲁夜| 日韩综合无码色欲vv| 久久亚洲天天做| 欧美成97爱| 国产精品秘 福利姬在线观看| 欧美激色| 国产剧情AV不卡在线观看| 亚州再线| 乱伦图一区| 亚州中文字幕超碰97| 国产狂喷潮在线精品| 亚洲综合97中文网| 婷婷久月| 操B久久| 最新亚洲黄色免费电影| 日本999精品| 视频黄色国产一级| 美熟女逼导航AV操逼| 国产 日韩 欧美 中文 另类,国产 欧美 另类 制服 变态,高清 日韩 欧美 中文,高 | 2017人人操,人人摸| 久久少妇视频| 色情乱伦AV| 久久九九久精品国产尤物|国产精品爽黄69天堂A片潘金莲,国产亚洲精品第一综合 | 2026国产精品视频| 欧美性爱十八禁| 热G综合热G中文| 欧美精品日韩一区二区| 精品欧美乱码久| 欧美黑人猛交春色影视大全| 亚洲AV成人无码一二三久久 | 狠狠操夜夜| 99re只有精品| 91国产精品在线看| 7777奇米影视久久| 黄页| 亚洲凸凹超碰成人| 激情久久久| 高清无码人妻久久久一区二区三区aⅴ| 久久久久久性爱片| 91呆哥人妻| 99re99| 久久天天躁日日躁狠狠躁| 乱伦色图网址是多少| 日本精品久久久久久久| 欧美在线视频99| 边做饭边操逼逼| 欧美国产有色电影| 日韩女优中文字幕| 极品极品色影院| 尤物av网站免费在线播放| 亚洲少妇在线影音| 亚洲天堂性爱| 丝袜熟女一区二区三区| 一级人妻性爱视频| 国产传媒日韩欧美| 亚洲美女黄色| 亚洲一二三四区机械| 国产亚州精品美女久久久免费| 天天综合色图| 黑人粗大V S日韩女优视频| 农村妇女一级二级三级视频| 黄片免费看的| 啊啊啊啊啊啊在线观看| 四虎免费视频| 久草资源欧美在线视频| av资源在线播放天堂| 欧美精品69性爱| 蜜臀中文无码午夜| 久草在| 亚洲人成色9999精品久久| 在线国产福利网址导航| 亚洲AV麻豆Aⅴ无码电影一| 尤物视频偷拍免费| 久久久天美| 久久欧洲| 欧美亚洲涩涩| 啊啊啊啊二区好大| 欧美中文字幕一区| 99re这里只有精品中心播放| 久久超碰爱| 操91| 人人操超碰在线| 97色色色综合网站| 欧美18禁91| 超碰超碰欧美| 欧美亚州手机在线| 蜜桃久久一区二区三区| 丁香婷婷大香蕉| 日本欧美亚洲高清在线看| 亚洲国产精品无码AV久久久| 国产欧美日本亚洲精品 | 熟女丰满人妻一区| av优播| 九九热视频在线观看| 亚洲四虎熟女精品| 97人人模人人爽人人| 亚洲日韩美女中文字幕乱| av在线观看不卡网站| 激情小说图片亚洲首页| 无码高清操逼| 日本性爰一道本| 色综合V| 黑人精品一区二区在线播放| 情趣丝袜无码操逼视频| 欧美成人A√在线一区二区| 精品日韩人妻精品一二三区| 18禁无码永久免费无限制| 草草电影院| av黄图片在线观看| 日本1区2区不卡视频| 久操操AV电影| 国产精品视频一区二区三区八戒| 啪一啪免费视频| 亚欧性爱ab| 思思热免费视频观看| 国产激情视频在线观看| www.91色综合| 东北女人的毛片| 天天看片麻豆| 女人香蕉久久毛毛片精品| 午夜视频久久久| 91欧美www| www.99在线| 久草五月| 色鬼在线综合| 婷婷九月国产| 夜夜骑夜夜操| 黄aaaaaaaaaaaaaaaaaa色网站| 亚洲无码色| 亚洲日韩av一区二区三区百合| 操一区| 我想要啊 啊 啊| 性色aV一区二区三区噜噜| 国产精品不卡高清在线观看| 精品人妻一区二区视频| 色婷婷丁香五月| 爱爱动态试试看6 0秒| 超碰在97| 日韩一级欧美一级国产一级台湾| 无码操逼网| 成人网址在线观看| 午夜欧美J进J出白浆流出久久久 | 中文字幕国产在线天堂| 开心五月深爱五月| 亚洲污一污二| 色香AV| 国产精品久久久久久 百度| 色优久久| 欧美在线干| 国产真实子伦对白| 激情AV| 国产地址二三| 天天看天天日天天操| 天天草天天干天天日| 日本三级日本三级三级人妇四虎| 日本3级一区二区免费| 日韩专区数据列表-第3230页-精品国产一区二区三区香蕉 久久99熟女人妻中文字 | 日本顶级天天操狠狠操夜夜操中文字幕| 在线观看综合精品亚洲| 久极品在线观看| 性高潮久久久| 亚洲av无线观看| 黄色高清久久无码依人| 清纯唯美亚洲综合| 色99视频| 亚洲天在线| 午夜福利在线合集| 超碰在线97国产| 亚洲无码视频免费在线观看网址!| 亚洲一卡2卡3卡4卡乱码网站| 麻豆亚洲Av成人无码一区精品| 中国熟女网站| 黄色激情电影在线观看| 日本淫色网| 色欧美综合| 亚洲精品成人| 蜜臀久久99精品久久久久久成人小说| 国产99久久99热这里只有精品15 | WWW美腿丝袜香蕉中文| 日本影视久久免费| 欧美熟妇乱码在线一区| 老司机午夜精品视频| 五月天激情小说网| 极品色| 一二三区在线| 九九九九免费| 日韩av熟女一区二区三区成人| 亚洲se91| 丝袜综合色图| 狠狠操夜夜| 国产日韩色综合| 91人人看| 岛国片国产成人亚洲播放| 中文字幕人乱码中文字的预防方法 | 最新av在线| 天堂俺去俺来也www久久婷婷| 久操大香蕉超碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰 | 国语精品对白| 人人爽夜夜操| 99在线无码精品秘 入口黑人| 污污污8888| 亚洲国产ⅴ高清在线观看| 日本淫穴在线| 久久久无码国精品无码三区三区| 日本精品五区| 亚洲成人妻日韩在线| 欧美成人一级免费电影| 9久久久久久| 精品国产一区二区三区av在线资源| 加勒比aⅴ| 久久久久密| 人人贴人人摸| 亚洲男人天堂手机版| 91视频国品一二三区| 国产1024在线播放| 超碰久久网| 丁香久久| 欧美91视频| 黄色网址在线免费观看| 久久一区二区蜜桃| 日韩精品人妻中文字幕久久久| 国产高清26uuu| 国产sv美女内射| 国产精品经典一卡久久久 | 校园春色亚洲欧洲| 久久精品色欧美aⅴ一区二区| 少妇色欲综合网2| 另类亚洲图色| 337p大胆噜噜噜噜噜91Av| aa片毛片| 亚洲午夜蜜臀| 夜夜国产一区| 欧洲中文字幕| 五月婷婷六月色| 天天操人人操狠狠插| 欧美中日韩XXXX| 97中文字幕色| 青青11操操操操操操操操| 亚洲暴力强奸AV| 中文字幕一区二区视频在线观看| 亚洲AV永久无码精品成人调教| 一区久久久二区| 亚洲色图亚洲无码强奸乱伦| 热思思免费视频| 亚洲熟女乱综合一区二区在线-...亚洲国产日韩欧美一区二区三区,久久久久久精 | 国产AAAAAABBBBB| 青青操日韩| 中文字幕88av在线| 亚洲狼狼干综合1| 欧美人妻制服| 日本高清加勒比| 99自拍B亚洲| 狠狠狠狠狠干| 国产成人亚洲精品自产在线| 人妻人人操| 无码黑人精品一区二区三区三| 亚洲国产精品成人久久蜜臀| 啊啊啊草死我| 美女黄站| 超碰97综合| 99热线麻豆| 人妻免费观看| 91国产丝袜美女| 日韩成人午夜精品久久高潮| 噜噜噜久久亚洲精品色情| 97操97色| 四虎影库国产精品免费| 美女黄页| 久都青青视频 | 淫荡网址| 搡老女人老91妇女老熟女 | 青青草视频久久| 五月婷婷激情网| 一区在线国产播放| 一区二区娱乐网站| 婷婷综合| 亚洲国产欧美日韩精品一区二区三区,国产一区二区三区在线看片,欧美性猛交 XXX | 国产精品乱码久久久久久| 韩日精品福利视频一区不卡在线免| 性欧美体内射精| 欧美色66| 午夜无码熟妇丰满人妻| 亚州精品人妻一二三区| 亚洲高清色综合| 97AV在线观看| 久热在线精品免费观看| 国产精品无码久久久久2025| 欧美成人A天堂片在线观看| 午夜精品久久久久久久久久蜜桃| 天天干天天燥| 成人午夜小视频手机在线看| 亚洲av强奸乱伦| 人妻嗯啊啊在线播放| 婷婷色一区| 97国产亚洲中文在线| 亚洲欧美日产国产91毛片| 91国精产品| 夜夜久久久| 男人天堂网站| 成人亚欧免费视频| 狠狠穞A片一區二區三區| 亚洲天堂人妻一区二区| 久久精品夜色国产亚洲AV| 国产人人干| 激情综合 婷婷五月 红杏| 欧美色偷偷| 一区二区三区亚洲| 日日爽夜夜爽| 91热情品| 老熟乱一区二区三区四区| 成人精品在线免费视频| 狠狠色噜噜狠狠狠狠狠色综合久久 | 久久精彩视频| 蜜臀AV成人精品蜜臀| 青青草在线视频美女| 日韩肏逼视频| 欧美亚洲日本视频久久久| 又大又白奶子| 屁股久久久久久久久| 91视频在线观看18| 亚洲国产麻豆一区二区三区| 116美女午夜| 碰人碰碰人人开房人肉| 久久久久久久伊人精品| 激情五月综合网| 中国熟女网站| 小说区 图片区色 综合区| 国产亚州高清国产拍精| 久操 高清| 伦理第一页| 91成人久久| 9超碰免费| 国产精品播放| 这里只有精品视频在线| 亚洲 欧美 综合 91| 不卡中文字幕aⅴ在线| 亚洲欧美日韩综合在线尤物| 91欧美性| 精品欧美А∨无码黑人大荫蒂 | 狠狠操使劲操| 婷婷色导航| 五月天欧美色图| 男女性无套 免费九一| 国产欧美日韩在线不卡第一页| 国产熟妇一区二区| 天天射天天| 欧美乱色| 超碰九7| 日本一级黄色电影| 天美传媒精品久久视频| 人妻系列无码专区中文有码 | 国产福利在线视频网站| 久久久久久久久久久久黄色| 韩美日操逼| 五月婷婷综合激情| 午夜毛片高清免费不卡| 影音先锋新男人| 大稥蕉免费视频这里只有精品| 91伊人大香蕉| 国产在线视频午夜精华在| 韩国久久97| 色逼综合| www.婷婷六月天| 超碰97COm中文| 激情小说五月天| 97美日韩视频| 成人网欧美风情| 三级日韩一区二区三区| 老汉网| 韩国午夜理伦三级好看| 99最新日韩偷拍视频| 亚洲国产成人精品无码专区| 久久一二三四五六七八九区| 极品白嫩美女白浆成人福利在线看| 日韩 欧美 国产 麻豆| 蜜乳性色无码专日粉嫩骚逼AV| 色五月激情AV在线| 伊人五月天| 东京太热男人的天堂久久久| 男人亚洲91首页在线| 日韩免费中文字幕视频| 嫩草影院永久在线制服丝袜| 秋霞一级视频在线观看免费| 亚洲色图一区二区三区| 丰满搜索结果 -第18页- 久久高清无码| 亚洲在线网站| 激情小说亚洲视频| 亚洲中文字幕97久久精品少妇| 96精品久久久久久久久| 欧洲精品人妻| 亚洲天堂电影精品一区| 九九热久久99精品re| 视频在线观看青青99国产| 九九内射在线| 国产人妖视频一区在线观看| 欧美亚洲首页| 欧美日动态视频| 婷婷丁香在线| 眼镜人妻101.com| 97在线日韩中文字幕| 欧美在线官网| 黑人精品成人一区二区三区| 天堂v无码免费视频| 人妻熟女一区二区| 夜夜爽妓女| 亚卅熟女乱色| 久操网无码在线| 色臀AV| 欧美日韩另类字幕中文| http://qxhbdz.com| 91成人久久| 亚洲精品国产精品成人| 亚洲熟女中文字幕在线| 欧美巨大性舒爽顶到了| 亚洲激情欧美色图 | 中文字幕人妻资源在线| 夜夜夜夜久久久久| 无卡一区=区| 日韩99神马视频片| 久久精品欧美一区蜜桃| 久久久久婷婷| 免费av大片| 国产家庭乱伦性爱视频| 超碰2017| 亚洲Av诱惑| 亚洲丝袜制服国产91_国语字幕免费观看完整版下载第5集_ | 人人摸人人干人人拍97| 成全在线观看免费观看| 欧美传媒| 99久久久无码国产精品性啊聊| 天美传媒精品久久视频| 久久人体一区二区| 久久一本大香蕉| 亚洲综合影片| 青青草视频导航官网| 亚洲一区中文字幕久久,果冻传媒一区二区天美传媒 | 日韩成人午夜精品久久高潮| 偷拍 精品 另类 四区| 啪啪啪大香蕉| 热九九精品| 欧美亚洲中文字幕| 日韩精品在线观看网站| 欧美黄片欧美黄片xxx| www.黄色在线| 乱论91| 色网在线视频观看免费| 亚洲囯产精品女人久久久| 亚洲色欲天天天堂色欲网女| AV一起草在线| 麻花豆传媒剧国产MV出差| 强奸乱伦免费网站| 99久久久无码精品国产人| 欧美一二三级精品在线| 26uuu偷拍亚洲欧洲综合| 草草影院最新网址| α√在线| 色婷婷丁香五月天| 97WW精品| 欧美97在线观看| 久久久久久9999| 激情五月天校园春色网| 人妻人久久精品中文字幕| 骚日日av| 97在线看| 日韩操逼性鲍| 蜜桃av综合网发布| 亚洲另类综合欧美| 午夜精品久久久99| 久久精品成人一区二区三区蜜臀 | 强奸乱伦动态污图免费| 婷婷色婷婷| 欧美午夜精品久久久久久超碰| AV天堂电影网| 亚洲日韩少妇一道本视频| 骚熟女AV网| 天天综合网日韩| 一个色导综合| 日本熟女中文| 麻豆精品A片免费观看| 麻豆天美在线喷水AV| 超碰色图| 欧亚性爱在线视频| 久热超碰| 91少妇香蕉久久精品| 青女偷拍网| 国产午夜精品理论片一二三区区| 特级丰满少妇一级AAAA爱毛片| 成人看片网站| 日噜夜夜夜夜夜夜夜夜夜夜爽爽爽爽爽爽爽爽爽爽爽爽 | 成人性生活高清视频在线播放| 成人小说另类在线| av一区二区三区 中文| 欧洲Au麻豆| 五十路熟女在线不卡观看一区二区| 好爽免费视频| 另类小色呦| a男人的天堂| 99久在线精品99re8| 成·人免费午夜在线观看| 亚洲第一狼人丝袜美女另类 | 亚洲欧美情色| 黄色性爱网网| 97视频在线观看高清资源| 国产丝袜啪啪| 国产黄色av大片网站| 夜夜高潮夜夜爽高清视频一| 91操熟女视频| 八人操人人摸人人看| 亚州操操穴网| 传媒在线观看一区二区三区| 国产高清MV操逼视频| 厕所偷拍在线| 啊啊啊草死我| 久草五月| 亚洲97资源| 最新的亚洲无吗| 嫩草 人人网精品| 欧在线一二区| 丁香九月婷婷| 午夜操操操| 干日本人少妇午夜寂寞影院| 欧亚第一综合网| 性色AV网站| 国产精品一二三免费网站| 天天操狠狠日夜夜干超大胆开放com大香蕉视频在线观看 | 啊啊啊啊啊啊好湿好爽视频| A 天堂| 亚洲有码 视频一区| 国产激情在线| 五月婷婷综合在线| 唯美清纯 妖精视频| 久操不卡视频| 色九九久九九| 秋霞欧美性爰视频| 日本ZZ高免费A级视频| 婷婷中文网| 亚洲情色综合网| 色哟哟511老熟女| 小骚逼被操的爽不爽| 丁香六月激情| 美女网站黄页| 日本日皮视频逼| 亚洲欧美内射| 狠狠操狠狠| 日韩精品-原创伙伴| 黄色AV影视| 91中文字幕| 在线天堂999| 亚洲视频1区| 久干网| 亚洲色图殴美色图激情乱伦| 色哟哟av| 九九综合| 久久国产AⅤ| 伊人久久亚洲中文字幕不卡| 无码国产精品久久久久| 清纯唯美综合| 亚洲一二三精品久久网| 美国精品国产精品| 热热色综合网| 91麻豆天美国产欧美日| 三级精品三级在线观看| 加勒比伊人综合| 精品-91人妻子系列| 另类欧美色| 欧美色图片91| 91在线精品| 天天噜| 东京热熟女亚洲视频网站| 亚洲操逼视频网站| 东京热一区二区中文字幕| 91在线丝袜视频| 亚洲av无码成人精品国产| 麻豆久久一区二区三区| 欧美一级专区免费大片| 天天爽天天爽| 岛国网址国产 | 亚洲色图在线视频| 欧美精品xxxwww| 久久粉色| yy少妇精品久久| 九九色色| 日人妻视频91| 蜜臀一区二区三区在线 | 乱伦av.com| 欲香欲色| 亚洲日韩狠狠撸视频| 婷婷伊人一区| 色小视频蜜乳| 国产精品探花色| 亚洲黄色电影| 97免费视频在线观看视频| 国产欧美日韩在线观看麻豆传媒公司| 亚洲天堂一区二区久久| 啊啊啊啊操死我| 亚洲。天堂。日本在线观看| 天堂av2019| 久久精品国产免费观看99| 久久亚洲国产成人| 性色综合网| 操死我了啊啊啊| 欧美亚洲丝袜美女电影| 1024日韩| 精品性爱无码在线播放| 日韩黄片影院| 一起草在线视频| aV中文麻| 99re在线视频这里只有精品| 久久大线蕉一区| 在线日韩精品一区二区三区| 欧美日韩国产成人高清| 黑人精品欧美一区二区蜜桃| 欧美色天堂网在线视频| 综合熟女| 色五月婷婷中文字幕| 亚洲欧综合另类无码一区| 久久亚洲国产成人| 水多多映视AV| 天天综合色图| 果冻传媒A片麻豆熟妇人妻| 欧美色自拍| 亚洲大色堂| 亚洲精品一二三四区| 91N欧美| av九九| 97干在线| 婷婷啪啪| 亚洲va综合va国产va中文| 3p国产欧美99热| 日韩AV无码中文一区二区| 国产高清免费不卡av| 中文字幕人成乱码熟女香港| 97超碰磁| ji熟女.com| 十八禁av无码免费网站APP| 久久性爱视频99| 在线观看亚洲成人精品| 国产真乱mangent| 四虎午夜影院| 自怕偷自怕亚洲精品| 男女激烈网站最新| 黄片国产精品一区二区| 手机在线中文字幕国产| 日本午夜操逼| 免费毛片在线播放| 午夜丁香婷婷| 91男女啊啊啊| 国产性感在线观看| 亚洲吊色| 男人的天堂三级| 亚洲高清91| 精品无码秘 人妻一区二区| 色视频蜜乳| 久久精品国产亚洲AV无码做| 日韩性爱电影一区| 综合熟女| 性欧美天天| 黄色十八禁| 亚洲区 欧美区| 日韩欧美加勒比| ,成人免费啪啪视频| aaaa少妇高潮大片| 25国产精品免费观看| 99啪啪视频| 蜜桃精品一区二区三区久在线| 四虎影视国产精品| 男人天堂电影院| 国产女人高潮嗷嗷嗷叫小说| 婷婷色中文字幕| 91丝袜美腿网站| 精品无码一区二区人妻久久蜜桃| 久久激情四射婷婷丁香五月天| 偷拍盗拍亚洲色图图片| 秋霞成人做爱| 婷婷综合在线| 久操九九九九九九九九九九九九九九九九九九九九九九九九九九九九 | 久久99国产综合精品女同| 亚洲自拍一区夜夜操| 农村少妇久久久久久久| 日韩成人精品| 久热久| 性性久久| 天天插网| 国产67194| 蜜桃精品视频一区| 我要色综合网| 亚洲日韩成人性爱视频| 清纯唯美激情四射| 亚洲综合色图欧美| 无码高清国产AV| 麻豆蜜桃视频在线观看| 黄站在线免费观看| 欧美的性爱网站免费| AA丁香综合激情| 欧美传媒一区| 日韩福利综合一区| 精品久久視頻在线| 久久久免费视频18| 无码最新| 啊啊啊啊二区好大| 五月亭亭六月丁香| 亚洲精品亚洲人成人网| 欧美色图人妻| 永久免费av无码网站国产app| 成人欧美一区二区三区黑人一| 亚洲啪啪啪啪视香蕉| 色y情视频免费看| 欧洲综合视频| 精品九九九九九九| 99热婷婷| 性感美女91影视| 强奸乱伦大香蕉网| 嗯嗯啊啊好大好爽| 人人操人人摸人人看人人插| 人妻密肉在线观看| 麻豆精品一区二区三区四区免费观看| 亚洲激情av| 中文字幕色AV| 爱做久久久久久| 精品国产综合久久福利,热99这里有精品综合久久,99热这里只有免费国产精品,精 | 日日躁狠狠躁天天躁精品| 人人操人人uiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii | 国产精品69久久久久久久| 做爱A级亚欧| 日本精品性生活久久久| 影音先锋视频在线| 精品人妻一区二区三区视频| 久久久一区二区三区三州| 青青草视频久久久久| 日韩特级毛片免费观看全集| 97干在线看| 日韩国产精品人妻无码久久久| 99国内精品| 韩国免费播放一级毛片| 99re9这里只有精品| 日本性交操一区二区不卡系列| 亚洲综合影片| 欧美黄色大片在线观看| 天天拍天| 大香蕉综合| 97亚洲在线| 男人的天堂2018.| 尤物视频一区| 干美女人妻| 日产狠狠干| 襙一襙| 精品中文日韩字幕视频| 五月天黄色激情视频| 精品国产乱码久久久久久久| 日本三级中国三级99人妇网站| 大香蕉久久| 亚洲情色一区三区| 国产AV激情无码久久无码| 91热色| 精品久久青青草| 国产亚洲日韩欧| 伊人96在线| www.色婷婷| 大香蕉乱级| 中文字幕免费看| 欧美后进式| 中文字幕五月婷婷免费| 大色网久久| 91啪9色| 欧亚性爱啪啪| 亚洲国产成人综合碰碰三级经典| 欧美人妻色| 超碰九色| 人人贴人人摸| 蜜臀久久99精品久久久久久成人小说 | 91在线欧色| 精品欧美А∨无码黑人大荫蒂| 在线啊啊啊| 色鬼在线综合| 亚洲天堂热| 激情五月综合开心五月| 97ai亚洲| 久久大陆| 大香蕉 222| 久久综合激情| 天堂а√在线最新版在线| 久操免费观看| 午夜久久久| 蜜桃在线观看一区二区三区 | 人人九九精| 亚洲精品一二三四区| 97人人模人人爽人人| 久久透逼视频| 精品999999| 夜夜无码| 欧美美女后入| 蜜臀人妻少妇久久在线观看| 丝袜美腿诱惑亚洲欧美视频在线观看| 亚洲精品无码久久AV| 国产精品爆乳懂色蜜乳| 日本 情色 1区| 智利AV在线网| 蜜桃精品视频一区| 99.色网| 9久综合网| 激情五月天色色网| 国产福利小视频高清在线观看| 欧美日韩国产成人高清| 久久丝袜| 97久久超碰国产精品| 久湿久久| 亚欧美综合网。| 亚洲AO在线| 另类综合另类| 丁香久久| 家庭乱伦网站国产| 精品九九国产无码| 熟妇xxxxx性春色| 视频一区二区免费在线| 性色亚洲| 亚洲欧美色图片| 天天天肏屄肏屄肏屄欧美欧美| 乱操9999| 另类专区加勒比| 色偷综合| 久久久熟女一区| 98福利在线视频| 国外91| 天欧美在线| 精人妻无码一区二区三区伊人直播| baiduhicn.com。| 免费网站观看www在线观| 中文字幕丝袜人妻| 欧洲射精91| 国产精品午夜成人福利| 99www.bibizy香蕉资源国产一区二区三区高清| 97中文超碰| 18一区二区三区| 日韩欧美成人大香蕉| 日产国产精品中文久久婷婷| www四虎| 啊啊啊97视频| 精品少妇人妻| 熟女91网| 欧美色图欧美| 91香蕉国产尤物视频| 人人人摸人人| 久久五十路熟女人妻| 日本无码1| 抽插无码高清一区| 中文字幕成人| 久久久久精| 美腿丝袜偷拍亚洲欧美| 曰本91情色| 9九九国产| 色臀AV| 中国AV美女| 日韩AV无码中文一区二区| 一区二区三区欧美激情| 韩国一区二区精品亚洲| 色九月综合| 蜜臀aV午夜一区二区三区| 韩日欧亚a级| 日韩中文字墓| 波多野结衣先锋影音| 国产免费久久久久| 老熟女91av| 一区二区三区色综合| 加勒比色99999| 国产精品ww久久| 国产网红精品| 一区二区你上我| 无码久| 91无码精品| 日本欧美韩国国产在线| 久久丁香五月天| 99re69综合| 亚洲影视高清三级-草1024榴社区入口-品爱AV| 手机在线大香蕉| 丁香九月 婷婷| 中文字幕在线观看视频www| 亚洲伊人久久精品狠狠在线| 伊人在线大香蕉视频久久| 97在线看| 思思热免费视频观看| 有码人妻系列| 久9爱精品| 免费日韩黄片| 国产 日韩 欧美 人妻 熟女 中文 69人妻精品一区二区绯色 | 欧美高潮| 天天激清| 国产欧美日韩在线不卡第一页| 黑丝少妇麻豆| 99999久久精| 色久桃花影院在线观看| 久久黄色网址| 激情内射| 在线无码网站| 97视频在线免费看| 99久在线精品99re8蜜桃| 丁香六月激情| 日本不卡三级网在线播放| 国产精选视频| 中日韩欧美精品无码AⅤ一区二区| 艾草av| 欧美日韩97| 男人的天堂一区三区| 欧美综合制服在线| 国产一级高清免费观看| 久久久com| 99国内熟女露脸视频| 亚洲国产精品成人综合| 久久婷婷国产一区二区色| 97爱爱官网| 秋霞免费AV| 日韩天天本| 亚洲国产欧美另类自拍| 99国产天美| 黄片视频观看| 欧美制服网站美腿丝袜| 男人天堂新在线| 九九性视频| 桑老女人九区| 99精品久久久久久久婷婷蜜桃| 91色色综合| 操逼www.| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区老师 | 大奶尤物鲍汁淫荡欧美视频粉嫩夜夜骚| 好吊色青靑草| 三级三级三级日本99| 久热这里只有精品9| 国产又色又爽又舒服的三级视频| 激情情色五月天| 91精品啪在线观看国产城中村| 9精品久久| 亚洲日韩美国人妻| 亚洲欧美日韩国产丝袜自拍中文| 2019久久久久久久久福利| 好看的久久不射无码影视影院| 影音先锋少妇| 色阁阁AV综合网| 国产精品成人蜜臀AV在线| 日本性一区| 亚洲精品日日夜夜52| 天天影视综合色| 97久久超碰| 国产精品乱码久久久久| 丝袜内射| 丁香六月激情| 老熟妇一区二区三区| 激情色色| 性综合网| 2017大香蕉国产精品久久| 久久久久久国产手机AV| 自拍啪啪视频| 天天综合色电影| 欧美人与动性人交a| 试看福利| 丁香九月激情啪| 青草成人免费视频一com| 亚洲高清内射| 国产亚州高清国产拍精| 欧美日韩狠狠爱| 欧洲综合视频| 一线黄色免费性爱片| 熟女久久| 激情露脸爱| 无码乱人伦中文视频| 精品久久久久久久| 欧美熟女妇同| 欧美性生活综合| 97综合| 96久久久精品| 天天射,天天操,天天爽-国内精品一区二区三区-成人AV | 亚洲美女av无码| 亚洲激情色片 | 国产91专区| 欧美美女自慰一区二区三区| 国产特级毛片AAAAAA高潮流水 | 青青草日韩无码| 一个色导综合| 亚州,欧美在线| 91最新综合| 欧美极度丰满熟妇hd| 国产精品爆乳懂色蜜乳| 韩国一级做a久久久久| 操屄日韩| 91欧美丝袜| 美女露胸露尿口| 午夜久久无码1000合集| 一中国女人毛片水真多| 蜜乳av一区二区三区四区不卡| 婷婷久草一区二区三区| 永久免费发布性爱网| 久久97| 激情文学亚洲| 综合网亚| 男人兔费天堂| 国产亚州精品美女久久久免费| 日韩国产精品人妻无码久久久| 美国三级日本三级久久99| 殴美日韩m| 久操大香蕉手机视频在线看| 亚洲第一狼人丝袜美女另类| 国产精品视频内谢女人| 中文字幕国产| 91精品免费| 麻豆区99999| 五月天偷拍| 国产亚洲日本精品在线| 性爱综合一区二区| 久久久96| 大香蕉中文201| 日本不卡一区二区三区| 亚洲综合小视频小说在线观看| 免费观看有码高清视频| 欧美一级A片在线看视频性色| 亚川综合视频| 日韩成人性日韩成人性爱视频在线免费观看| 人妻精品一区一区三区蜜桃91| 超碰夫妻97| 欧美视频第二页| 久久的网站啊啊啊啊啊| 发朗少妇买婬全视频中文| 国产免费久久久久| 亚洲超碰AV| 久久av一级av少妇av高潮| 92性色国产午夜福利在线661| 好色综合| 91九九| 清纯唯美亚洲| 色香AV| 大色综合| 亚洲av青草久久一区二区| 亚洲国产精品无石码久久| 伊人超碰97| 大香蕉中文网| 欧美姓爱综合网| 澳门色噜噜色噜噜色噜噜色噜噜色噜噜| 不卡六六在线91| 好爽要喷了| 久肏视频字幕| 可乐操在线| 国产精品农村妇女精品| 日本黄色精品| 蜜臀久久99精品久久久久久成人小说 | 欧美天堂第二区| 日欧毛片久久| 偷拍色图| 91精品国产91久久久久久久久久久久| 日韩青久久| 亚欧美综合网| 国产高清成人免费视频| 97精品一区二区视频| 黄色大片免费在线|