日韩精品一区二区三区在线视频放-无码中文字幕V?一区二区-成年片免费观看视频-国内少妇人妻丰满av-国产精品中文字幕免费观看-亚洲成人久久一区二区三区-国内少妇偷人精品视频无缓冲-一区二区国产精品日本一区二区三区在线网

ARTICLE DETAIL

資訊詳情

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

微服務(wù)數(shù)據(jù)依賴癥:拆服務(wù)易,拆數(shù)據(jù)難

微服務(wù)數(shù)據(jù)依賴癥:拆服務(wù)易,拆數(shù)據(jù)難 微服務(wù)進(jìn)階這件事很多人會把它理解成“把應(yīng)用拆開、注冊到注冊中心、走一遍OpenFeign調(diào)用”就算完事了。但真正在線上待過幾年你就會發(fā)現(xiàn)拆服務(wù)從來不是最難的最難的是拆完之后數(shù)據(jù)該怎么辦。服務(wù)之間的數(shù)據(jù)依賴像蜘蛛網(wǎng)一樣纏在一起A服務(wù)查B服務(wù)的庫B服務(wù)等C服務(wù)的數(shù)據(jù)C服務(wù)又回頭依賴A服務(wù)最后誰都不敢動表結(jié)構(gòu)誰改字段誰挨罵。我給這種狀態(tài)起了個(gè)名字叫“微服務(wù)數(shù)據(jù)依賴癥”。這篇文章不聊理論就結(jié)合我自己在一個(gè)訂單域項(xiàng)目里真實(shí)踩過的一次大坑從發(fā)病機(jī)制、排查鏈路到根治方案完整過一遍。如果你所在團(tuán)隊(duì)也經(jīng)常因?yàn)椤安閯e人數(shù)據(jù)”吵架這篇文章值得你花十分鐘看完。1. 一句話診斷什么是“微服務(wù)數(shù)據(jù)依賴癥”1.1 自測清單你的服務(wù)“病”到第幾期了所謂“數(shù)據(jù)依賴癥”本質(zhì)上指的是微服務(wù)拆分之后服務(wù)之間的數(shù)據(jù)訪問關(guān)系沒有跟著服務(wù)邊界一起被切開還在用單體時(shí)代那種“誰能拿到數(shù)據(jù)誰就查”的思路來完成業(yè)務(wù)協(xié)作。接口是分開了數(shù)據(jù)庫卻藕斷絲連服務(wù)是自治了數(shù)據(jù)卻還是大家共享的公共食堂。你可以對照下面這幾個(gè)癥狀給自己團(tuán)隊(duì)打個(gè)分超過兩條基本可以確診階段典型癥狀后果一期輕度某個(gè)服務(wù)偶爾直連另一個(gè)服務(wù)的庫查一張明細(xì)表偶發(fā)耦合還沒形成事故但已經(jīng)在埋雷二期中度一個(gè)詳情查詢接口要串行或并行調(diào)用3個(gè)以上服務(wù)接口P99明顯上升下游一抖動自己先超時(shí)三期重度核心表被多個(gè)服務(wù)同時(shí)讀寫沒有明確的Owner改任何字段都要全組待命線上故障變成每周固定節(jié)目我見過最夸張的一個(gè)場景是訂單服務(wù)接口層面它已經(jīng)是一個(gè)獨(dú)立部署的微服務(wù)了但數(shù)據(jù)層面幾乎退化成了全公司的公共數(shù)據(jù)庫用戶服務(wù)來查訂單量支付服務(wù)來核對金額物流服務(wù)來取收貨地址營銷服務(wù)來判斷是否首單全都直接從訂單庫拉數(shù)。一個(gè)訂單表的讀QPS能到寫QPS的12倍其中將近一半是別的服務(wù)“借數(shù)”借走的。這種狀態(tài)說白了就是用微服務(wù)的殼跑著單體的數(shù)據(jù)邏輯。1.2 反面案例訂單服務(wù)被七個(gè)兄弟服務(wù)輪番“借數(shù)”說一個(gè)我印象特別深的例子。當(dāng)時(shí)我們訂單服務(wù)的核心庫里有訂單主表和訂單明細(xì)表本來只應(yīng)該由訂單服務(wù)自己讀寫。但因?yàn)楦鳂I(yè)務(wù)方都覺得“訂單數(shù)據(jù)是公共資產(chǎn)”于是紛紛找我們要數(shù)據(jù)庫只讀賬號或者要求我們提供查詢接口。到后來訂單服務(wù)一個(gè)月內(nèi)給其他服務(wù)開了七個(gè)調(diào)用入口用戶服務(wù)要統(tǒng)計(jì)用戶累計(jì)訂單數(shù)支付服務(wù)要對賬訂單金額物流服務(wù)要拉取收貨人地址營銷服務(wù)要判斷用戶是否首單用戶數(shù)據(jù)分析平臺要抽訂單明細(xì)做報(bào)表售后要查原始訂單快照連積分服務(wù)都要按訂單金額給用戶發(fā)積分。每個(gè)調(diào)用方來的時(shí)候都是同一套說辭“我們就查一次量不大幫幫忙?!钡懿蛔∑邨l鏈路疊加在一起訂單服務(wù)每天光處理這些“別人的查詢”就要消耗掉一大半的數(shù)據(jù)庫連接池資源。更致命的是訂單服務(wù)自己的核心鏈路過一段時(shí)間就會因?yàn)橄掠畏?wù)頻繁變更接口而跟著發(fā)版本質(zhì)上已經(jīng)被這些數(shù)據(jù)依賴綁架了。這個(gè)案例里最諷刺的地方在于業(yè)務(wù)架構(gòu)圖上每個(gè)服務(wù)都是獨(dú)立的框但真實(shí)的數(shù)據(jù)流一畫出來完全是一張密密麻麻的蛛網(wǎng)。我當(dāng)時(shí)就跟團(tuán)隊(duì)說這不是微服務(wù)這是“人人為我而我沒人可求”的共享數(shù)據(jù)庫服務(wù)化。要想治這個(gè)病得先搞清楚它的根在哪。2. 病灶根源為什么微服務(wù)拆著拆著就成了數(shù)據(jù)麻花2.1 只拆應(yīng)用、不拆數(shù)據(jù)庫的“偽微服務(wù)”數(shù)據(jù)依賴癥最直接的病根就是數(shù)據(jù)庫沒有跟著服務(wù)一起拆。很多團(tuán)隊(duì)為了控制風(fēng)險(xiǎn)第一步只把Spring Boot應(yīng)用拆成多個(gè)服務(wù)數(shù)據(jù)庫仍然共用一個(gè)MySQL大庫。所有服務(wù)連的是同一個(gè)實(shí)例只是通過不同的schema或不同的表名來區(qū)分歸屬。這個(gè)模式運(yùn)行起來特別順暢服務(wù)A可以直接SQL join服務(wù)B的表服務(wù)B想要服務(wù)A的數(shù)據(jù)也不用調(diào)接口直接查就行。表面上每個(gè)服務(wù)都是獨(dú)立部署的代碼倉庫也分開了但數(shù)據(jù)邊界形同虛設(shè)。一旦幾十個(gè)服務(wù)共享上百張表加一列索引都可能引發(fā)跨服務(wù)的鎖等待改一個(gè)字段的類型就可能讓不知道哪個(gè)角落里寫SQL的服務(wù)直接報(bào)錯(cuò)。所以我的第一個(gè)判斷是要治病第一步永遠(yuǎn)是“數(shù)據(jù)跟著服務(wù)走”。每個(gè)服務(wù)必須擁有自己獨(dú)立的庫至少是獨(dú)立的schema其他服務(wù)想拿數(shù)據(jù)物理上就沒有直連通道。這個(gè)前提不落地后面所有治理動作都是空中樓閣。2.2 領(lǐng)域邊界模糊以為拆了服務(wù)其實(shí)沒拆業(yè)務(wù)第二個(gè)病根是領(lǐng)域邊界模糊。拆服務(wù)這件事正確的姿勢是按業(yè)務(wù)能力拆而不是按技術(shù)功能拆。但很多團(tuán)隊(duì)在劃分服務(wù)時(shí)習(xí)慣性地把“用戶”“訂單”“商品”這些詞直接搬過來用卻沒有仔細(xì)想清楚用戶信息到底歸用戶服務(wù)管還是訂單服務(wù)也需要一份真正屬于自己的用戶數(shù)據(jù)這里最大的坑是“同名實(shí)異”。用戶服務(wù)里的“用戶”是一個(gè)包含賬號、等級、手機(jī)號的完整實(shí)體訂單服務(wù)里的“用戶”其實(shí)只需要ID、昵稱、收貨地址這幾個(gè)快照字段營銷服務(wù)眼里的“用戶”又是另一套畫像數(shù)據(jù)。三者都叫user各自持久化但語義完全不同。問題就出在當(dāng)一個(gè)服務(wù)發(fā)現(xiàn)自己手里的“用戶數(shù)據(jù)”不夠用時(shí)它不是去訂閱事件、同步副本而是直接RPC到用戶服務(wù)實(shí)時(shí)查。一次兩次還能接受時(shí)間一長所有服務(wù)都把用戶服務(wù)當(dāng)成“公共用戶中心”數(shù)據(jù)依賴癥就從偶發(fā)變成了日常。所以要破解這個(gè)病灶必須確立“單一事實(shí)源”原則每一份數(shù)據(jù)只能有一個(gè)Owner服務(wù)其他服務(wù)需要時(shí)要么調(diào)Owner的API要么通過事件拿到副本但永遠(yuǎn)不能讓兩個(gè)服務(wù)同時(shí)擁有同一個(gè)數(shù)據(jù)的寫入權(quán)。否則數(shù)據(jù)不一致了連該怪誰都說不清楚。2.3 康威定律在助攻協(xié)作機(jī)制也在推著系統(tǒng)走向耦合第三個(gè)病根很多人沒意識到是組織協(xié)作機(jī)制在反向推著系統(tǒng)走向數(shù)據(jù)耦合??低烧f系統(tǒng)架構(gòu)最終會趨同于組織的溝通結(jié)構(gòu)。現(xiàn)實(shí)中我見過這樣的場景業(yè)務(wù)方半個(gè)月內(nèi)要上線一個(gè)活動等不到訂單服務(wù)的排期于是提了一個(gè)“臨時(shí)需求”——直接給數(shù)據(jù)庫開一個(gè)只讀賬號?!熬瓦@一個(gè)活動兩個(gè)星期就下線?!苯Y(jié)果這個(gè)“臨時(shí)賬號”在訂單庫里活了兩年期間被七個(gè)小組用過。還有一種是接口版本失控。訂單服務(wù)對外提供的查詢接口經(jīng)常因?yàn)閮?nèi)部優(yōu)化調(diào)整字段調(diào)用方跟不上節(jié)奏就容易“另辟蹊徑”——繞過接口直接連庫拉數(shù)。這看起來是技術(shù)問題本質(zhì)上契約管理缺位數(shù)據(jù)提供方?jīng)]有穩(wěn)定承諾數(shù)據(jù)消費(fèi)方?jīng)]有約束機(jī)制。這一點(diǎn)我會在第五章專門展開。這里先記住一個(gè)結(jié)論數(shù)據(jù)依賴癥不單是技術(shù)問題它一定夾雜著團(tuán)隊(duì)協(xié)作、契約管理和架構(gòu)紀(jì)律的問題。只靠修代碼是修不干凈的。3. 從P99飆升到超時(shí)雪崩一次跨服務(wù)數(shù)據(jù)依賴事故的完整排查鏈路3.1 現(xiàn)象詳情接口P99從80ms飆到3s錯(cuò)誤率跟著起飛理論說再多不如一個(gè)真實(shí)事故有說服力。那次事故發(fā)生在周二晚高峰訂單詳情接口的P99從平時(shí)的80ms左右飆到3s以上接口錯(cuò)誤率從0.1%漲到8%。訂單詳情是App首頁的必經(jīng)接口用戶點(diǎn)開任何一單都要經(jīng)過它所以很快引起了客服側(cè)反饋。我們的第一反應(yīng)是看資源監(jiān)控訂單服務(wù)的CPU、內(nèi)存、磁盤IO、網(wǎng)絡(luò)全部正常沒有任何資源瓶頸。當(dāng)時(shí)值班同事還懷疑是中間件抖動先把訂單服務(wù)節(jié)點(diǎn)快速重啟了一輪。重啟之后確實(shí)緩了十來分鐘但很快P99又一次拉滿而且報(bào)警群里開始刷OpenFeign調(diào)用用戶服務(wù)和商品服務(wù)的超時(shí)異常。這里有個(gè)經(jīng)驗(yàn)可以分享遇到接口變慢先不要急著重啟節(jié)點(diǎn)。重啟只能清掉“已堆積的線程”但只要你代碼里的依賴關(guān)系還是錯(cuò)的請求一進(jìn)來線程池照樣會再次被打滿。那次重啟沒有解決任何實(shí)際問題只是幫我們把“這是個(gè)代碼問題”這個(gè)事實(shí)確認(rèn)得更清楚了。3.2 排查第一輪資源全沒事問題指向線程池重啟無效之后我們開始翻線程池。一查Tomcat線程池發(fā)現(xiàn)線程數(shù)已經(jīng)頂?shù)?00的上限大量新請求在隊(duì)列里排隊(duì)。這不是流量浪涌而是線程被某個(gè)遠(yuǎn)程調(diào)用“粘住”了。我們馬上抓了一個(gè)線程dump看到線程棧幾乎都停在同一個(gè)地方UserServiceClient.getUserById()。而且更讓人頭大的是這個(gè)方法是在一個(gè)for循環(huán)里被調(diào)用的。什么意思呢一個(gè)訂單帶10個(gè)商品SKU代碼就會循環(huán)調(diào)用10次商品服務(wù)RPC再去用戶服務(wù)拉一次頭像昵稱單是詳情頁一次請求就產(chǎn)生了11次同步RPC調(diào)用。正常來說Tomcat有200個(gè)線程每個(gè)請求就算慢一點(diǎn)200個(gè)并發(fā)也夠扛。但問題是每個(gè)請求都要同步等這11次RPC而下游用戶服務(wù)當(dāng)時(shí)剛好在做滾動發(fā)布大約5%的請求會變慢到兩三秒。這5%的慢請求經(jīng)過線程池排隊(duì)機(jī)制一放大直接把可用線程全部占滿最終表現(xiàn)就是誰來了都超時(shí)整個(gè)訂單詳情接口雪崩。那次排查給我的感覺是雪崩發(fā)生時(shí)上游不一定是掛了它就是慢了那么一點(diǎn)點(diǎn)但只要你把那么多同步依賴串在自己的核心路徑上慢請求就一定會被放大成系統(tǒng)級故障。3.3 鏈路追蹤找到藏了半年的“幽靈回源”確認(rèn)線程池被打滿之后我們立刻開了全鏈路追蹤當(dāng)時(shí)用的是SkyWalking把訂單詳情接口的完整調(diào)用鏈拉出來看。不看不知道一看嚇一跳。一個(gè)訂單詳情trace里包含了訂單服務(wù) - 用戶服務(wù) getUserById平均耗時(shí)120ms最慢達(dá)到2.8s訂單服務(wù) - 商品服務(wù) getProductById循環(huán)調(diào)用10次累計(jì)耗時(shí)超過500ms訂單服務(wù) - 物流服務(wù) getLogisticsByOrderId平均耗時(shí)80ms也就是說所謂“訂單詳情查詢”訂單服務(wù)自己只執(zhí)行了一次本地訂單表查詢其余時(shí)間全部在等下游的13次RPC。這種依賴關(guān)系平時(shí)是隱形的因?yàn)橄掠味己芊€(wěn)定QPS也不高大家根本感知不到。可一旦下游哪個(gè)服務(wù)抖一下這個(gè)隱藏的同步依賴就會變成事故放大器。我們內(nèi)部把這種“表面上是查詳情、實(shí)際上背了一身遠(yuǎn)程調(diào)用”的代碼稱為“幽靈回源”。它不在架構(gòu)圖里不在設(shè)計(jì)文檔里可能就是一個(gè)半年前“為了補(bǔ)個(gè)昵稱字段”留下來的邏輯但它在生產(chǎn)環(huán)境里就是一顆定時(shí)炸彈。3.4 止血與根解先恢復(fù)再給數(shù)據(jù)依賴叫停事故的臨時(shí)止血動作相對簡單我們分了三步走第一步給所有遠(yuǎn)程調(diào)用加超時(shí)。連接超時(shí)200ms讀取超時(shí)500ms絕不允許一個(gè)下游請求無限期掛住上游線程。第二步用Sentinel對用戶服務(wù)、商品服務(wù)的調(diào)用做熔斷降級。我們當(dāng)時(shí)給OpenFeign接口包了一層SentinelResource配置了異常比例熔斷規(guī)則一旦失敗比例超過閾值就快速失敗直接返回兜底值用戶昵稱顯示“用戶已注銷”商品圖片顯示占位圖。第三步訂單詳情接口改為優(yōu)先讀本地緩存即使緩存沒有命中也不允許在核心鏈路上做同步RPC補(bǔ)全。這三步做完P(guān)99立刻降回120ms以內(nèi)錯(cuò)誤率歸零。但所有人都清楚這只是止血不是治病。緩存兜底只是讓故障不再快速傳播而“詳情頁為什么要去用戶服務(wù)拉昵稱、去商品服務(wù)拉圖片”這個(gè)問題才是真正要解決的數(shù)據(jù)依賴癥。從我的經(jīng)驗(yàn)來說止血和根治必須分開對待。線上事故面前先恢復(fù)業(yè)務(wù)永遠(yuǎn)是對的但恢復(fù)之后如果不把依賴關(guān)系切斷同樣的事故一定會改頭換面再來一次。4. 切斷依賴鏈的四種實(shí)戰(zhàn)解藥4.1 數(shù)據(jù)冗余加異步同步用空間換解耦事故之后我們做的第一件事就是給訂單詳情頁建了一張“訂單展示寬表”。核心思路很簡單把需要跨服務(wù)實(shí)時(shí)查詢的數(shù)據(jù)變成訂單服務(wù)自己擁有的副本。用戶昵稱、頭像、商品名稱、商品圖片、物流狀態(tài)全都冗余到寬表里。具體流程是這樣設(shè)計(jì)的訂單服務(wù)在自己的事務(wù)內(nèi)寫入訂單主表和明細(xì)表同時(shí)發(fā)送“訂單創(chuàng)建”領(lǐng)域事件監(jiān)聽用戶信息變更事件的消費(fèi)者異步更新寬表里的昵稱、頭像字段監(jiān)聽商品信息變更事件的消費(fèi)者異步更新寬表里的商品名、圖片字段物流狀態(tài)由物流服務(wù)在狀態(tài)變更時(shí)推送消息訂單服務(wù)消費(fèi)后更新這套方案落地后訂單詳情頁的查詢就變成了純本地查詢不再有任何RPC。空間換解耦代價(jià)是寬表字段變多、同步鏈路變長但換來的是核心鏈路徹底穩(wěn)定。這里有三個(gè)坑必須提醒一是冗余字段必須明確“只讀”寫操作永遠(yuǎn)走事實(shí)源服務(wù)二是消息消費(fèi)要做冪等重復(fù)投遞不能造成數(shù)據(jù)錯(cuò)亂三是必須配定時(shí)對賬任務(wù)防止消息丟失導(dǎo)致寬表數(shù)據(jù)陳舊。沒有對賬機(jī)制的異步同步本質(zhì)上是在用另一個(gè)隱患換當(dāng)前的隱患。4.2 事件驅(qū)動把“我查你”變成“你推給我”如果你的場景冗余不太夠另一個(gè)解法是事件驅(qū)動。思路是一個(gè)服務(wù)不應(yīng)該頻繁去查詢別的服務(wù)的數(shù)據(jù)事實(shí)源服務(wù)應(yīng)該在數(shù)據(jù)變化時(shí)主動發(fā)布領(lǐng)域事件其他服務(wù)按需訂閱各自更新自己的副本。比如訂單創(chuàng)建完成后訂單服務(wù)向MQ發(fā)送一個(gè)事件事件體大概是這樣的{ eventId: 0b7f3e6a-8d4f-4e1a-9c6d-2e8f1a4b5c6d, eventType: ORDER_CREATED, timestamp: 1700000000000, payload: { orderId: 10001, userId: 8888, totalAmount: 199.00, items: [ {productId: P001, skuId: SKU001, quantity: 2, price: 99.50} ] } }消費(fèi)方收到ORDER_CREATED事件后把訂單ID、金額、商品快照寫入自己的讀模型或緩存。這樣原來下單后“你去訂單服務(wù)查一下”的邏輯變成了“訂單服務(wù)主動告訴你”。調(diào)用鏈從同步變異步任何一個(gè)服務(wù)抖動都不會拖垮另一個(gè)服務(wù)。代價(jià)也很明顯系統(tǒng)變成最終一致。某個(gè)瞬間營銷服務(wù)看到的訂單數(shù)據(jù)可能不是最新的。但大多數(shù)業(yè)務(wù)場景比如展示、統(tǒng)計(jì)、風(fēng)控特征提取天然是接受最終一致的。設(shè)計(jì)的時(shí)候要特別注意消費(fèi)冪等和亂序處理尤其要區(qū)分“消息ID冪等”和“業(yè)務(wù)冪等”比如下單事件冪等鍵應(yīng)該用業(yè)務(wù)訂單號而不是消息ID否則重復(fù)投遞會造出兩份重復(fù)的統(tǒng)計(jì)記錄。4.3 CQRS與查詢側(cè)獨(dú)立讓讀模型不再綁架業(yè)務(wù)服務(wù)第三種解法針對的是那種“查詢場景特別復(fù)雜、導(dǎo)致服務(wù)被迫暴露大量接口”的情況。很多數(shù)據(jù)依賴其實(shí)不是直接連庫而是業(yè)務(wù)方要求提供五花八門的查詢接口訂單服務(wù)為了應(yīng)付這些查詢把自己整成了一個(gè)“報(bào)表中心”。對于這種讀多寫少、查詢維度復(fù)雜的場景我會用CQRS的思路讓查詢側(cè)獨(dú)立出來。做法是業(yè)務(wù)服務(wù)正常寫自己的庫通過CDC組件Canal訂閱MySQL binlog或者Debezium訂閱PostgreSQL的WAL把數(shù)據(jù)變更同步到一個(gè)獨(dú)立的查詢庫或者Elasticsearch。所有復(fù)雜查詢、組合篩選都打到這里業(yè)務(wù)服務(wù)數(shù)據(jù)庫只承擔(dān)核心增刪改。這么做有兩個(gè)實(shí)實(shí)在在的好處。第一業(yè)務(wù)服務(wù)的數(shù)據(jù)邊界終于可以收緊別人再也不會因?yàn)椤拔乙瓷唐肪S度查訂單”來打擾核心鏈路。第二查詢側(cè)的索引結(jié)構(gòu)可以完全獨(dú)立設(shè)計(jì)不用遷就業(yè)務(wù)表之前讓人頭疼的復(fù)雜慢查詢也順勢解決了。需要提醒的是CQRS的復(fù)雜度明顯高于普通分層還要專門維護(hù)CDC的穩(wěn)定性它不是銀彈。但如果你的服務(wù)已經(jīng)出現(xiàn)了“為了一個(gè)報(bào)表功能被迫加一堆接口”的癥狀它是一個(gè)非常值得考慮的根治方向。4.4 分布式事務(wù)的選擇別一上來就上Seata講到跨服務(wù)寫數(shù)據(jù)很多人的第一反應(yīng)是上Seata。在這里我要潑一盆冷水大部分跨服務(wù)寫數(shù)據(jù)需要解決的問題根本用不上分布式事務(wù)。比如“下單同時(shí)扣庫存”很多人覺得這是強(qiáng)一致需求必須Seata。但實(shí)際上用“本地消息表異步消息”就能實(shí)現(xiàn)可靠的最終一致訂單服務(wù)在本地事務(wù)里寫訂單同時(shí)往本地消息表插一條待發(fā)送消息后臺任務(wù)掃描消息表把消息可靠投遞到MQ庫存服務(wù)消費(fèi)消息執(zhí)行扣減。因?yàn)橛唵螖?shù)據(jù)和待發(fā)消息在同一個(gè)本地事務(wù)里要么一起提交、要么一起回滾根本不存在“訂單提交了消息沒發(fā)出”的中間狀態(tài)所以數(shù)據(jù)最終一定是一致的。我整理了一張跨服務(wù)寫數(shù)據(jù)的方案對比表方便你選型方案一致性復(fù)雜度適用場景本地消息表 MQ最終一致中大多數(shù)跨服務(wù)寫推薦首選Seata AT模式強(qiáng)一致高短事務(wù)、低并發(fā)、跨庫寫必須強(qiáng)一致TCC強(qiáng)一致很高需要業(yè)務(wù)層顯示補(bǔ)償?shù)膹?fù)雜場景Outbox模式最終一致中高需要可靠事件流的核心業(yè)務(wù)域我見過太多團(tuán)隊(duì)一上來就給每個(gè)跨服務(wù)寫操作配Seata結(jié)果一個(gè)月之后因?yàn)槿宙i沖突頻繁整個(gè)下單成功率下降又灰頭土臉地把Seata摘掉。正確順序永遠(yuǎn)是先用最終一致真的不滿足業(yè)務(wù)約束再由架構(gòu)組評審是否需要強(qiáng)一致。直接用Seata解決一切問題跟用一把牛刀切所有菜一樣看著專業(yè)實(shí)際上處處別扭。5. 防止復(fù)發(fā)用“數(shù)據(jù)所有權(quán)評審”把依賴關(guān)進(jìn)籠子5.1 畫一張服務(wù)-數(shù)據(jù)歸屬矩陣解藥再多如果不建立長效機(jī)制數(shù)據(jù)依賴癥遲早復(fù)發(fā)。我們團(tuán)隊(duì)在根治階段做的最重要的一件事就是畫了一張“服務(wù)-數(shù)據(jù)歸屬矩陣”。矩陣的行是服務(wù)列是數(shù)據(jù)域單元格里填三種關(guān)系之一Owner表示該服務(wù)是這份數(shù)據(jù)唯一的事實(shí)源Reader表示該服務(wù)只允許持有只讀副本Denied表示禁止直接訪問。一個(gè)簡化的例子數(shù)據(jù)域 / 服務(wù)訂單服務(wù)用戶服務(wù)物流服務(wù)訂單數(shù)據(jù)OwnerDeniedReader副本用戶基礎(chǔ)信息Reader副本OwnerDenied物流單數(shù)據(jù)DeniedDeniedOwner每個(gè)新表、每次新的跨服務(wù)數(shù)據(jù)訪問都要拿這張矩陣來過評審。沒有Owner的僵尸表要清理。矩陣?yán)锩髅鳂?biāo)著Denied卻有人在代碼里偷偷訪問的要拉閘整改。數(shù)據(jù)邊界一旦變成白紙黑字的架構(gòu)資產(chǎn)就不再依賴某幾個(gè)人記住了。這個(gè)矩陣不需要做成很復(fù)雜的系統(tǒng)開始用Excel或者Wiki表格都行但一定要強(qiáng)制所有服務(wù)負(fù)責(zé)人更新。半年之后你會發(fā)現(xiàn)它能幫你在一分鐘里回答一個(gè)此前需要開會才能確認(rèn)的問題“到底哪些服務(wù)在讀寫我的庫”5.2 用ArchUnit把“禁止跨服務(wù)查庫”變成CI紅線矩陣是管理制度但光靠制度管不住代碼。我們當(dāng)時(shí)的下一步是把這個(gè)約束固化到自動化檢查里。既然最核心的紅線是“禁止跨服務(wù)訪問Mapper/Repository”那就直接用ArchUnit在測試階段把鏈路斷掉。簡單示例AnalyzeClasses(packages com.example.order) public class DataOwnershipTest { Test void 禁止訂單服務(wù)使用用戶服務(wù)的Mapper() { JavaClasses classes new ClassFileImporter().importPackages(com.example.order.api); ArchRule rule noClasses() .should().dependOnClassesThat().resideInAPackage(com.example.user.mapper..) .because(用戶服務(wù)的數(shù)據(jù)只能通過用戶服務(wù)API訪問禁止跨服務(wù)直連數(shù)據(jù)庫); rule.check(classes); } }這段代碼的作用是在CI階段掃描訂單服務(wù)模塊一旦發(fā)現(xiàn)代碼里引用了用戶服務(wù)Mapper包下的類構(gòu)建直接失敗根本走不到代碼評審環(huán)節(jié)。ArchRule還可以配合配置中心掃描“連接串是否指向了別人的數(shù)據(jù)源”這種更隱蔽的違規(guī)。我個(gè)人的體驗(yàn)是這類自動化守護(hù)規(guī)則的價(jià)值在于“消滅例外”。代碼評審本質(zhì)上靠人盯人總有漏網(wǎng)之魚但CI紅線不存在疲勞問題每一次提交它都會嚴(yán)格審查數(shù)據(jù)訪問邊界。新的團(tuán)隊(duì)成員進(jìn)來也會被這條紅線直接教育到位。5.3 數(shù)據(jù)消費(fèi)者契約讓依賴從潛規(guī)則變成明規(guī)則最后一項(xiàng)治理措施是數(shù)據(jù)消費(fèi)者契約。所有跨服務(wù)的數(shù)據(jù)訪問都必須走提供方正式發(fā)布的契約而不是“找DBA開個(gè)賬號就能查”。契約分兩類。一類是查詢API契約用OpenAPI定義接口、參數(shù)、限流閾值和調(diào)用協(xié)議另一類是事件契約比如RocketMQ的Topic規(guī)范、事件payload的版本號、上線通知機(jī)制。消費(fèi)者只依賴契約不依賴提供方內(nèi)部實(shí)現(xiàn)。提供方做契約變更要遵守兼容性原則字段只增不改不刪先灰度后全量如果確實(shí)要做破壞性變更至少提前兩個(gè)版本周期通知所有訂閱方。這一條乍看是流程制度但恰恰是治本的。數(shù)據(jù)依賴癥的病根一半在技術(shù)、一半在管理把數(shù)據(jù)訪問納入了契約管理就等于在“臨時(shí)想查就查”的沖動前面攔了一道硬性閘門。我們當(dāng)時(shí)把這條規(guī)則更新到研發(fā)規(guī)范里之后跨服務(wù)直連數(shù)據(jù)庫的新增案例基本清零。最后說點(diǎn)個(gè)人體會。把這個(gè)病徹底治過來我們前后花了一個(gè)多季度代碼改動量說實(shí)話并不大最費(fèi)勁的是讓整個(gè)團(tuán)隊(duì)接受“數(shù)據(jù)是有邊界的”這個(gè)觀念?,F(xiàn)在每次新服務(wù)上線或者老服務(wù)重構(gòu)我都會先問三個(gè)問題這個(gè)服務(wù)的數(shù)據(jù)庫有幾個(gè)其他服務(wù)在連它一條核心鏈路上要RPC查幾個(gè)服務(wù)的數(shù)據(jù)這些數(shù)據(jù)依賴有沒有契約、有沒有兜底如果你發(fā)現(xiàn)答案全是“數(shù)不清、沒想過、不知道”那基本可以確診了。數(shù)據(jù)依賴癥這東西越拖越貴越早治越輕松。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
欧美婷婷五月天| 91黑人无码激情在线| 超碰99在线观看| 91熟女综合| 亚洲人精品午夜不卡| 人人操人人精品影片| 亚洲日韩精品久久久久一区壹牛 | 日韩大香蕉精品在线视频| 中文字幕在线免费观看| 中国探花熟女| 日日夜夜骚| 精品无码久久| 九月丁香婷婷色| 动漫爆乳3D奶水一区在线观看| 亚洲第一页色| 久久久久亚洲Av无码专区老牛影视| 精品久久人妻成人网| 麻豆 美女 丝袜 人妻 中文| 人人操我人人干| av日韩在线观看电影| 吻戏激情性巴克| 欧美性高潮| 日本东京热加勒比久久| 亚洲做性| 九九色逼| 欧美性高潮在线| 中文字幕三四区| 久久九七| 久久色精品视频在线| 国内精品久久人妻性色av| 大香蕉男女超碰精品在线| 一级二级三级黑人无码| 啊啊啊啊好疼| 啊啊啊操死我了| 激情黄色五月天| 96AV久久久| 思思热在线| www.超碰| 国产精品天美传媒| 国产色图乱伦| 天天看人人操屄犊摸阴| 女人午夜视频777| 亚洲黄片免费在线播放| 天天综合网在线观看| 色香网| 亚洲97P| 福利社区午夜一区二区| 自怕偷自怕亚洲精品| 日本影视久久免费| 国产又黄又爽| 亚洲成aⅴ人片不卡无码| 九久精品| 最新日本中文字幕| 1级黄色夫妻对换性交免费看| 亚洲精品97久久| 熟妇激情| 中文字幕一区日韩精| 一区二区亚州激情久婷婷欧美| 亚洲无线码一区国产欧美国| 欧在线一二区| 日韩激情视频| 婷婷九月色| 资源新线在线天堂| 金典av| 黄色av一区二区在线| 免费视频一二三区| 天天躁日日躁狠狠狠躁| 精品一区二区三区蜜桃臀赵总 | 男人的天堂2010| 蜜乳成人AV| 欧美传媒一区| 69超碰综合| 人人干人人操人人爱| 中文字幕、久久精品国产2020、久久综合久久自在自线精品自、亚洲 | 婷婷五月成人| 一区二区三区高清天码| 久久精品国产72国产精品福利| 中文字幕一区二区在线日韩精品| 欧美人人曰人人操人人射射| 国产精品久久久视频| 91美女在线视频| 人人考人人摸人人干| 99人妻碰碰碰久久久久禁片| 超碰色97| 99re99在线视频| 超碰在线日韩一区| 欧美天天综合网| 日韩av不卡在线看| 丁香六月天| 亚洲综合性感在线| 后入式福利| 神马久久久久久久| www.99视频| 日本一久是| 中文久久久| 一级毛片久久久久久久女人18| 欧美系列在线一区二区| 人妻精品4K4K4K4K4| 日产123区精品免费观看| 午夜操一视频一区| 狠狠色噜噜狠狠狠狠2018| 天天色播亚洲综合网站| 蜜臀亚洲中文| 天天拍天| 欧美成年人性爱视频免费观看| 久久九九视频九九视频| 啊啊啊好湿久久| 日韩欧美麻豆 | 国产精品激情久久久久久久| 精品人妻一区二区三区-国产精品 一个人在线看的黄色电影网站 | 国产精品丝袜久久亚洲不卡| 人人人干干人人干| 色五月婷婷网| 熟女久久久| 日韩性爱长视频免费| 中美日韩毛片| 日韩一级二级在线| 九一综合精品视品av| 婷婷五月天激情网| 欧美黄片视频在线观看免费| 日韩精品国产一区二区| 人妻一二三区| 亚洲一级性爱视频免费看| 亚洲色交| 国产精品视频在线观看| 亚洲欧美国产精品久久久久久久| 无码九九九九| 嗯嗯不要 视频| 粉嫩AV一区夜夜嗨| 综合九九| 欧美手机在线综合| 亚洲综合嫩| 欧美资源| 无码精品久久| 强奸乱伦Av网| www.色婷婷色综合| 天天综合亚在线| 国产激情综合五月久久| 婷婷香蕉| 啊啊啊操一区| 神马久久久久眼| 精品视频久久久久九九九九9999| 97资源久久| 国产精品探花色| 手机不卡视频不卡在线一二三区| 手机看片日韩人妻| 日本最新免费韩国1区2区视频播放| 九九综合| 欧美国产有色电影| 国产精品一区二区三区在线| 校园春色亚洲| 日韩图区 偷拍| 九九热精品| 久久久中文版| 亚洲色图日韩精品| 9久精品| 人人澡综合涩| 国产成人免费观看在线视频| 天天欧美| 69精品人人人人| 久久国产AⅤ| 999综合色| 亚洲色图欧美视频| 国内伊人久久久久久网站视频| 久久久久日本视| 懂色中文一区二区三区| 人妻美腿丝袜日韩| 强奸xx国产| 日韩激情电影中文字幕| 我中文字幕6区| 亚洲精品亚洲人成人网| 久久美女国产| 91熟女丨91老女人| 亚洲视频二区| 国产亚洲 中文欧美久久| 男人的天堂 在线一区| 日韩传媒在线| 网友自拍第1页| 99操| 99国内熟女露脸视频| 久草精品一区| 亚洲中文字幕久久无码精品| 久久一二三四| 三级三久久线久久99久目本WW| 婷婷九月国产| 大香蕉黄色一区| 亚洲精品一区二区日本| 欧美天天在线| 国产不卡中文字幕免费avi| 无码伊人久久大杳蕉中文无码| 97超碰香蕉| 天天干人妻| 999狠狠综合| 免费一级精品啪啪视频| 国精综合一二三区影视| 欧亚日韩综合精品国产| 白丝AV| 国产在线视视频有精品| 97色涩| 日韩熟女乱伦中出| 青青操在线视频| 婷婷五月天无码 | 性色AV网站| 97超碰欧美精品| 99热线麻豆 | 日韩精品高清资源在线| 欧美日韩中国x| 色五月激情网| 天天干天天燥| 啊啊啊不要啊啊受不了了视频在线 | 日本道不卡| 丁香五月天堂网| 人妻激情视频| AV和黑人在线播放| 北京美女一区二区| 懂色AV一区二区三区| AV中文在线| 日本一二区不卡| 久操网无码在线| 97欧美视频| 男人的天堂在线| 欧美日韩国产人人| 色香综合| 日韩精品第3页| 欧美狠狠狠| 99re在线视频国产| 四虎免费视频| 午夜操一视频一区| 91高潮| 97亚洲中文| 外国免费性情大片| 午夜超碰| 尹人免费观看视频在线| 久久午夜鲁丝片| 啊啊啊啊网站| 欧美gv在线观看| 麻豆91熟妇人妻中文字幕茄子| 欧美色图在线视频少妇| 欧美一区二区传媒| 国产精品情侣啪啪| 亚洲91网。| 欧美少妇一区二区三区| 欧美丝袜激情| h无码动漫在线观看| 中日韩久久久免费看| 日本一区二区不卡精品| 夜夜欧美 | 国产67194| 久久久久久十| 欧美九九99久久精品| 操迟操逼在巾线Fre看| 大屁股熟女一区二区三区| 麻豆国产免费影片| A级在线视频| oumeizonghese,www| 91站街按摩店老熟女熟女| 欧美黑人日韩少妇色情| 日本少妇va7777| 狠狠中文字幕| 无毛精品| 中文字幕交换人妻| 国产懂色精品国产av| 亚洲Av诱惑| 91成人在线| 亚洲aV无码成人在线观看| 中文乱码字幕观看| 国产丝袜一区二区三区| 人人摸人人干| 97精品中文字幕| 亚洲色图 图片| 欧美一区二区三区互相| 亚洲精品国语在线播放| 播播亚洲小说亚洲| 日韩三级视频一区二区三区| 欧美第38页| 人妻天天爽夜夜爽爽| 欧美性爱一内片一区二区三区| 九九英色视频| 亚洲欧洲日韩国产自在线| 999精品女人| 香蕉精品二区二区| 男人女人18禁片免费看网站| 精品国产乱码久久久久久久久1| 啊啊啊啊啊好大好舒服想要| 人人妻人人爽一区二区三区| 激情视频网址| 91国产丝袜美女| 丁香色狠狠色综合久久小说| 婷婷伊人| 992视频一区| 91社操逼| 东北操逼| 久久久久久久亚洲Av无码| 成人资源中文字幕在线观看天天| 综合色区偷拍| 成人性爱电影一区二区| 国产精品夜夜夜| 久久黄色视频一区二区三区| 天天干一区二区| 丰满人妻-区二区三区| 最新日韩黄片| 久日91在线| 青青五月天| 久久婷婷色| 春色综合免费| 99久久久久| 夜夜骑日日| 丰满人妻av一区二区三区 | 国产精品国产| 男人的天堂一区三区| 国偷自 一区二区| 免费啪啪一级视频| 亚洲日本大香蕉1| 免费看国产曰批40分钟怎么下载| 日韩少妇丰满亚洲| 情色日播放AV| 欧美人妖内射| 亚洲欧美黄| 校园春色宗合网| 91在线免费精品视频| 激情无码日韩| 久久久久久久九九九九九九| 国内毛片热久久思思热| 色踪合AV| 亚洲九九视频| 欧美AB在线| 啊啊啊在线观看| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区老师黑人潮喷一 | 中文字幕精品一区二| 蜜臀久久99精品久久久电影| 国产黄色视频久久| 免费啪啪一级视频| 五月婷婷久久综合| 久久9亚洲| 97超碰这里只有精品| 色臀aV| 熟妇人妻精品一区二区| 三男一女不戴套的A片| 欧美性生活免费网| 国产精选三级在线观看| 日本不卡高清免v欧美日韩在线观看| 天美传媒av一区二区| 欧美在线干| 囯产精品久久久久久久久久梁医生 | 伦激情人妻另类人妻| 亚洲美女精品| 九月激情婷婷| 乱人乱色一区二区三区免费| 91女神在线视频| 乱论91| 999精品久久久久久久| 无码视频一区二区| 96精品在线| 亚洲 欧美 偷拍 唯美| 天天综合站| 上海一级黄片| 婷婷久久五月| 超碰97日韩| 亚洲成人久久美女| 日产操逼| 天天干18禁| 男生女生啊啊啊啊| 色色无码| 爱av免费| 久久综合国产精品国产| 成人小说另类在线| 亚洲AV无码天美传媒一区| 亚洲 图片 综合91| 老司机香蕉| 色吧5亚洲| 色青青久久影视| 91最新综合| 日韩97超碰| 啊好爽快点-国产一区二区三区撒尿在线-成人AV | 国产视频三区四区| 激情AV| 亚洲激情在线观看一区| 秋霞Av理论一级在线| 天天综合网~91| 午夜综合在线| 哈哈操电影AV| 美女t无毒不卡不卡| 性爱综合一区二区| 综合影院亚洲| 国产精品丝袜在线| 日本理论在线| 97超碰中文| 免费观看网黄| 亚洲熟妇无码一区二区三区| AV女优男人的天堂| 欧美 亚洲 偷拍自拍| 国产精品久久久久久久免牛肉蒲团 | 日本丝袜人妻内射| 在线综合 亚洲 欧美中文字幕| 97伦综合| 婷婷丁香六月| 人妻精品一区二区| 亚洲图片欧美91N| 色欲天香天天综合网-成年人三级片网站-欧美乱妇狂野-日韩国产专区-久久久久久 | 天天色,天天干,天天干| 最新精品久久蜜桃 | 精品四五区| 亚洲人妻精品一区二区| 激情综合五月婷婷| 精品日日人妻| 韩国久久97| 亚洲脚交| 五月天大香蕉| 97色色色| 人妻激情另类| 夜夜一区二区| 色五月婷婷网| 女人爽到高潮潮喷18禁网站| 美中日韩无码| 岛国不卡超碰护士AV在线播放| 丝袜狂射91| 啪啪免费| 国产91美女视频| 狠狠综合| 亚洲一区二区三区春色| 中出789在线视频| 激情五月婷| 中文字幕精品区先锋资源| 国产AV久久久蜜爱影集| 韩国久久97| 国产精品。| 国产精品丝袜久久亚洲不卡| 神马久久久久久久久| 国产熟女少妇一区| 男人综合网| 日韩无码极品| 1000部熟女视频在线观看| 日韩乱伦AⅤ| 日本在线视频导航| 国产老熟女| 国产人人干| 天天综合网~91| 一个人免费视频观看在线WWW| 伊人网综合在线视频| 欧美九9 9 9| 欧美狠狠鲁| 91爰爱欧美| 很黄很色的视频在线观看| 亚洲文学偷乱拍啪啪啪啪 | 久久精品日韩专区免费观看| 超碰是碰在线观看| 9 1果冻精品视频| 成人无码电影在线观看网| 日本熟女中文| 美女诱惑在线一区| 天天综合网网欲色| 伊人久久大香大香线蕉中文| 欧美久久婷婷| 国产色产精品在线观看| 26uuu欧美| 好好的日:com久久九九| 国产一国产一级毛片古装| 18禁美女裸体无遮挡啪啪| 素人播放一区| 91四海无码日韩欧美| wwwxxx日本爽| 亚洲综合影视| 亚洲另类欧美精品| 五月婷婷六月丁香| 欧美激情精品久久久| 亚洲在线网站| 95人妻爽爽人人做人人澡| 少妇久久久免费| 蜜臀久久99精品久久久久| 最新日韩黄片| 欧美亚洲高清晰| 亚洲自拍天堂| 一区二区视频你懂的| 26uuu最新| 国产成人亚洲精品自产在线| 欧美九九九| 国产精品一区二区黄片| 久久中文字幕女同性恋一区| 插日本熟女视频| 亚洲 另类 丝袜 自拍 动漫| 日韩字幕一区| 老熟妇一区二区三区…| 蜜桃中文字日产乱幕4区| 大香蕉人妻久久| 在线视频日韩欧美国产| 欧美综合亚洲| 国产高清无码一区二区三区四区皇冠| 亚州欧美综合| 天天色播亚洲综合网站| 嗯~啊~快点 死我视频免费看网站| 九月激情婷婷| 日韩精品9区| 国产精品久久久久久久黄无码| 青青草伊人久久| 乱伦一二三| 中文字幕在线播放2中文字幕在线观看2 | 日本在线观看网址| 私人尤物在线精品不卡| 久久久久9999| 日韩欧美传媒一区国产| 美女诱惑久久| 天天肏天天干| 人人操人人色网| 欧美综合天天| 9色国产精品一区粉嫩 | 欧美97在线观看| 99国产天美| 91+欧美| 亚洲狼狼干综合1| 亚洲男人天堂网久久| 少妇国产不卡| 国产一级久久久| 亚州再线| 国产精品经典一卡久久久| 欧美性猛交美女自慰91| 99亚洲精品| 欧美成人9797| 黄色成品网站| 久久99精品国产| 好爽要喷了| 色婷婷小说| 久久精品性| 免费一级黄色录像影片| 另类一区| 手机看片1024你懂的国产| 成人片在线播放| 日韩精品一区二区三区四虎影视| 亚洲色欲天天人妻无码系列专区| 中亚精品极乱| 18一区二区三区| 女同性恋一区二区三区精品视频| 精品小视频在线| 国产精品97超碰| 天天综合色图| 熟妇人妻精品一区二区视频色欲| 亚洲天堂少妇| 人妻精品一区二区全免费| 五月天玖玖资源站| 亚洲日韩精品久久久久一区壹牛| 白嫩白嫩的午夜九久久久久久久久久久久成人剧场 | 国产日韩欧美亚洲精品95| 日日躁天天躁狠狠躁| 夂久色| 日本色色色视频| 色姑娘综合网| 欧美另类丝袜熟女| www.色操逼| 婷婷精品视频| 999综合色| 91国产丝袜美女| 日韩精品人妻一区二区| 国产日韩欧美中文在线播放| 性爱视频久久| 青木玲在线不卡| 日产国产精品中文久久婷婷| 久久精品日韩专区免费观看| 日本熟女免费視颖| 国产熟女完整版中字| 精品欧美А∨无码黑人大荫蒂| 伊人激情五月天一区二区| 无码av永久免费专区网站| 欧美大的香蕉有线电视视频| 九九九久久久| 熟女人妻一区二区三区| 伊人成人中文字幕久久网| 亚洲高清无码在线桃色| 青青免费在线视频一区| 青青欧美| 99热aaa| 人妻啊啊人妻啊| 多乙久久久久久| 国产精品自拍xxxx| 黄色人人| 成人a大片在线观看| 凹凸视频在线一区二区| 国产成年女黄特黄| 伊人国产成人av网站| 91精品国产一区三一| 偷拍欧美亚洲| 亚州欧美另类| 性91| 97免费在线观看| 人妻熟妇一区二区三区| 91第一页| 97精品第3页| 日本一二三免费久久| 啪啪资源网| 九九热视频这里只有精品| 久久精品一区二区三区四区五区| 色99视频| 男人的天堂kva| 日本色色的视频| 欧美日韩另类字幕中文| 天天色悠悠激情| 婷婷色中文字幕| 成人国产精品三级A片| 免费网站观看www在线观| 视频不卡中文字幕| 国产精品扒开腿做爽爽爽视频| 东京热亚洲一区二区| 精品久久久中文字幕不| 色激情五月天| 国产无遮挡| 97AV在线免费观看| 97超碰大| 国产不良强奸视频免费看| 隔壁邻居波多野结衣中文字幕| 日韩激情电影中文字幕| 日本精品一区二区不卡| 日本 欧美 国产一区| 91n.欧美| 亚洲色啪| 白丝AV| 美骚妇av高清在线| 乱人乱色一区二区三区免费| 人妻色偷色噜| 国产AV激情无码久久无码 | 亚洲乱妇p22| 国产精品久久aV| 国产中文字幕曰本毛片| 中文字幕视频在线观看一区二区| 欧美熟妇亚洲版| 欧美亚洲天天| 日韩色欲久久一二三四区| av资源在线播放天堂| 亚洲国产欧美中日韩成人综合视频| 日本精品一区三区| 人妻天天爽| 91在线观看,天天综合| 蜜桃网熟妇| 超碰久久综合| 9色国产精品一区粉嫩| 亚洲色91C| 亚洲国产精品成人综合| 亚洲91色在线| 黄色小视频日本txt| 九九九九热只有精品| 欧美天天插| 91在线欧美| 日韩超碰精品综合| 久久久 国产精品| 神马久久午夜| 久久久禁| 麻豆2区1区天美| 6080YYY午夜理论片在线观看| 久久九九精品一区二区| 久久久久久久极品香蕉视频| xxxx网站亚洲精品| 91美女小视频| 国产诱惑| 99自拍B亚洲| 欧美亚洲中文字幕| 乱抡国产91| 日韩精品资源| 亚洲欧美国产中文字幕| 91碰碰碰| 亚洲最大的综合性av| 九七超碰| 97人妻免费中文字幕| 丁香六月东京热| 18岁禁 茉莉成人久久| 亚洲欧美高清无码| 久久久噜噜噜久久久| 97干色| caopeng97| 69精品| 伊人大香蕉在线| 激情综合网亚洲| 99啪| 日韩福利综合一区| AV老汉| 亚洲精品乱码线路中文字幕| 欧美亚洲影视| 福利操逼| 蜜桃精品一区二区三区久在线| 久久久久国产精品喷潮免费观看臀| 亚州春色| 26uuu国产免费观看| 女同性恋中文字幕| 天天爽夜夜操| 国产v亚洲v日韩v欧美v片另类| 中文字幕视频在线观看一区二区| 精品久9| 校园春色制服丝袜中文字亚洲| 色欧美综合| 久久久久久性爱视频| Av手机版天堂网| 色男人色天堂东京热| 免费A V在线播放| 91中出在线| 欧美美女自慰一区二区三区| J?P?NESEHD熟女熟妇伦| 人人澡人人弄| 日韩性爱播放| 欧美第五页| 国产精品麻豆成人av| 欧美黑人精品一区二区| 美女黄网| 丁香五月激情综合| 亚洲欧美人妻| 欧美夜夜狠| 97超碰美女| 日韩中文字幕二区| 超碰在线人妻| 亚洲宅男天堂| 天天日天天干天天摸天天操| 亚洲AV无码国产成人| 最新制服中文第一页| 亚洲精品一二三四区| 国产大学生口爆吞精合集| 超碰97国产欧美| 日本三级大片| 太久视频| 91爱啪| 99久久综合| 女人午夜视频777| 日韩欧美亚洲自拍偷拍| 久久久草成人网站久久久草成人久久久草久久久 | 九九英色视频| 99色在线观看| 国产精品爽爽v| 久久内射| 亚州Av天美传媒| 久久色一区| 色婷婷狠狠18禁| 神马久久久久久伦理片| 人妻娇喘 激情视频| 人人操人人摸人人骑| 天欧美在线| 日韩一区二区熟女| 这里只有精品视频在线| 伊人五月天激情| 亚洲一区二区三区在线激情| 在线洲亚线| 色老牛| 国产视频一区二区在线观看| 久久婷婷伊人| 天天激情综合站| 后入式免费视频| 精品国产乱码久久久影院| 九九九九九九九九九九九九九九九女| 91青视频| 激情文学网伊人| 色婷婷在线视频| 无码一区二区三区四区五区六区七区八区九区十区视频 | av操操不卡| 97超碰中文| 国产色图乱伦| 曰韩av中文字幕专区| 第四色亚洲色图| 国内毛片国产专区二| 中国熟女老妇仑乱一区二区三区| 探花精品 一区二区| 国产精品点击进入在线影院高清| 国产成人欧美精品在线| 日韩特级毛片免费观看全集| 一级性爱视频免费在线| 亚洲图片激情综合另类| 一本色道久久天天射天天干| 亚洲第一免费视频| 久久av成人无码免费| 国产18精品亚洲精品| 99视频自拍| 97色伦欧美| 麻豆人妻少妇在线免费观看| 超碰97首页| 少妇贴图| 亚州熟女乱伦| 蜜臀AV一区二区三区| 国内精品嫩模A∨私拍小视频| 日本熟女不卡视频| 2020久久免费视频| 天天躁日日躁xxxxx| av凤凰久久久| 视频在线观看一二三区| 亚洲欧洲第二视频在线观看色图| 舔舔啊| 久久久久久久唑| 免费av在线播放二区| 欧美亚洲日本激情在线| 亚洲熟妇图片| 精品中文一区二区| 亚洲丝袜少妇在线| 免费精品中文字幕| 夜夜操2028| 色眯眯av| 久久久久亚洲Av无码专区老牛影视| 被男人添B超爽视频| 五月天激情婷婷| 日韩三级在线观看mp4| 99热这里只有精品1| 强被迫伦姧在线观看无码网站| 久久精品高清AV| 久久本道| 超碰97综合网| 日本十八禁免费看污网站| 九九亚洲视频| 激情久久久| 亚洲极品| 亚洲自拍偷拍视频在线| 极品综合| 色综合91| 亚洲春色欧美| 性爱边摸边日免费AV| 欧美老熟另类| 欧美熟妇精品黑人巨大91| 综合操逼| 神马久久久久久久久久久久| 91爱| 99ri视频| 尤物视频偷拍免费| 激情抓乳插进去啪啪啪日韩| 亚洲偷拍欧美激情| 一起草日韩| 亚洲91极品| 精品无人区麻豆乱码1区2区图片| 午夜.DJ高清在线观看免费7 | 99热91| 亚欧洲一区二区视频| 无码高清操逼网址| jiujiujiujingpin| 国产一级舔足在线观看| 人妻久久久久久| 精品无码秘 人妻一区二区| 韩国免费播放一级毛片| 911粉嫩人妻| 久湿久久| 国产 无码 一区二区| 亚洲和欧美裸体美女双飞视频| 精品人成视频在线观看| 超碰亚洲97| 久久久四区| 少妇超碰在线| 欲香欲色天天天综合和网| 日韩精品人妻中文字幕不卡乱码| 日本十八禁免费看污网站| 天天亚洲综合| 欧美熟妇成人一区二区| 欧美黑人猛交春色影视大全| 精品78| 中亚av| 中文字幕97| 69AV女优男人的天堂| 青娱乐淫乱1314| 江都AV在线| 国产精品高清2021在线| 久久综合女优| 自拍视频一区在线观看| 欧美福利视频啊啊啊啊| 亚洲三级网址久久最新| 亚洲另类小说卡通动漫| 天天影视射综合网| 偷拍自拍在线视频观看| 欧美色吧综合| 亚洲综合网电影91| 韩国一级做a久久久久| 中文字幕丝袜人妻| 人人操人人插人人摸人人干| 日韩 女同 综合| 超碰在线看| 91w欧美| 美女91在线观看| 国产69精品久久久久99尤物| 久久精品国产97欧美精品亚洲 | 五月婷婷无码| av网站免费看| 青青伊人久久| 91精品久久久久久综合五月天| 2017天天拍大香蕉| 亚州 综合 色图| www…国产操逼| 亚洲影视综合| 国产乱码精品久久久久久| 无码日韩网站| 看日韩黄片| 精品一区二区久久| 91国产精品熟女| 亚洲伊人a线观看视频| 欧美少妇高潮视频| www.一本大99| 亚洲熟妇一,二,三期| 亚洲日韩东京热一区| 熟女欧美日韩综合婷婷| 91+欧美| 中文字幕精品人妻丝袜| 日韩美一区| 色播五月婷婷| 青青草日韩无码| 91粉芽高清在线一区二区| 亚洲骚男同com| 人人操AV| blacked精品一区国产| 91 丝袜在线播放| 天天操天天7| 久久久工口| 这里都是精品在线观看| 欧洲欧美视频一区二区| 最近二区三区视频大全| 久湿久久| 99热在线不卡| 又黑又大又粗| 色99视频| 艹比视频国产精品| 伦激情人妻另类人妻| 91制服丝袜中文字幕| 国产精品第一页国产大屁股视频免费区i| 精品国产乱码久久久久久久久1 | 精品国产一区二区三区四区在线看| 亚洲91色| AV天堂国产| 国产精品久久久久无码A√| 日本一区二区成人在线| 99日韩| 欧美日韩夜夜| 国产二区三区粉嫩在线| 人妻喷水| 欧美人妻二区三区| 亚欧成人中文字幕一区| 久久精品日韩| 免费日韩黄片| 天堂69亚洲精品中文字| 欧美精品三级黄片| 啊啊啊啊啊在线| 超碰人妻97| 密臀在线视频| 成人草草视频| 久久久月天| 99最新日韩偷拍视频| 人妻熟妇久草在线| 亚洲爱爱视频一区二区| 国产中文福利| 另类 综合 日韩 欧美 亚洲| 熟女色图在线| 极品内射| 午夜福利在线视频1000| 久久精品免视看国产成人﹣蜜臀av一区. 久久精品免视看国产成人,蜜臀av一区 | 偷拍亚洲熟女视频播放| 国产精品久久妻无码网站| 亚洲阿v天堂在线| 亚洲视频中文一区| 久久精品国产精品一区| 夜草网站| 俺去啦俺来也久久综合| 人人干黄色| 神马久久久久久伦理片| 亚洲 一区二区 自拍| 美中日韩无码| 911粉嫩人妻| 欧美视频在线视频免费va| 99在线观看| 亚洲男人天堂Av| 116美女午夜| 亚洲成人精品久久久| 欧美熟女妇同| 欧美日韩中国x| 欧美综合天堂| 日韩免费a级毛片无码a∨| 亚洲精品成人动漫在线| 亚洲精品国产熟女久久久久久| 人妻人人做人人澡人人爽欧美一区| 亚洲图片欧洲图片aⅴ| 极品白嫩美女白浆成人福利在线看| 亚洲欧美国产日本一区二区三区| www.夜夜| 日韩AV中文字幕电影| 我中文字幕6区| 欧美97av| 熟女乱3伦999| 国产精品宅男免费| 五月丁香激情综合网| 亚洲欧洲视频小说在线观看| 日日夜夜草草草| 啊啊啊 在线| 欧美在线91| 成人激情无码在线视频| 狠狠操狠狠爱| 人妻社区男人天堂| 国产91丝袜 在线播放| 色欲天天综合久久久无码网中文| 中文字幕五月婷婷免费| 破苞ⅩXXX性无码动漫无码| 97国产超湿| 加勒比人妻综合| 97欧美日韩| 亚洲欧美在线观看免费| 日韩人妻资源在线看| 欲香欲色天天天综合和网| 东京热,男人的天堂| WWW操逼| 人人操AV| 亚洲欧洲第二视频在线观看色图| 青青在线视频免费| 亚洲国产欧美一区二区潘金莲 | 亚洲黄色电影| 伊人久久在线视频观看| 婷婷丁香六月天| 欧美综合网1| 精品视频一区二区| 成人性爱电影一区二区| 熟女色图在线| 蜜桃久久一区二区| 日本人人操人人操| 欧美72网页| 丝袜足交视频| 国产精品久久伊人| 九区国产| 乱伦熟女专区| 亚洲精品 大香蕉| 美女爽爽爽刺痛洞洞| 三男一女不戴套的A片| 99久久综合| av草草在线电影| 午夜福利一区二区影院| 亚洲精品视频二区| 欧美狠狠狠| 欧美日韩国内不卡| 久久久禁| 中文字幕精品一区欧美| 婷婷国产精品九区| 大香蕉久久| 中文字幕 码 自拍 视频 区| …中文字幕亚洲乱,97人妻无码费视…| 国产美女在线精品免费看| 日韩人妻大香蕉| 国产sv美女内射| 色综合色欲色综合色综合色综合| 人妻丝袜肏逼| av在线观看不卡网站| 久插综合| 91欧美综合| gogogo免费高清看中国国语| 欧美成人9797| 欧美日韩资源| 一区二区三区精品黑丝白丝酒店对鸡| 超碰在线1234区| 岛国视频免费在线观看| 亚洲人91| 一区二区三区视频国产免费| 1区2区3区中文字幕日韩| 日本国产欧美一区三区二区| 91狠婷| 超碰95| 毛片17S| 91AV入口| 天天看特黄的免费网站| 日本成人A片网站| 亚洲Av噜噜一区二区三区妖精| 亚欧免费| 国产亚洲精品美女| 91人妻素女| 欧美97se| 亚洲麻豆精品二区三区| 91操熟女| 91网18| 欧美性爱第一区| 97jingpin| 日韩中文字幕二区| 亚洲天堂2020| 中美日韩毛片| 亚洲 日本 国产 综合| 久久高清无码夜夜操| 欧洲熟妇xxXx欧美老妇裸体| 久久久久久久| 爱干爱射网啊啊啊| 乱伦1色页| av天堂加勒比| 99啪| 亚洲 日韩 丝袜 熟女 变态| chaopen97久久| 男人的天堂啪啪啪啪啪蜜桃不卡| 综合网亚洲| 综合91网| 超碰在线91| 精品亚洲一区在线观看| 香蕉大久久久| 久操综合在线| 18禁免费视频| 欧美综合色,www| 91撸色网 玖玖网 欧美| 国产视频不卡在线观看| 黑人综合网| 亚洲资源网| 97久久精品亚洲| 99老司机精品视频在线观看| 欧美人妻一区二区| 射丝袜高跟鞋99| 国产亚洲禁久一区二区| 国产老太乱伦一区| 色偷偷超碰亚洲| 久久久一热在线播放| 99久久精品无码一区二区| 1240青青草一区二区三区视频天爱| 啊啊啊啊啊好大好舒服想要| 久久婷婷色| www亚洲免费| 酒色综合网| 国产福利一区二| 伊人嫩草| 精品久久視頻在线| 国产特级毛片AAAAAA高潮流水| 91热色| 99天天超碰| 99啪啪| 十八禁的黄污污免费网站| 中文字幕一二三| 99re在线视频| 无码一区二区三区四区五区六区七区八区九区十区视频 | 日本欧美中文字幕| 91欧美丝袜| 9超碰免费| 色噜噜综合在线| 久久久久久AⅤ无码免费肉站| 亚洲电影中字一区二区| 亚州性色| 九九九九精品在线| 色拍偷亚洲| 欧美激情一区二区| 狠狠躁AV| 伊人AAA| AV综合中文字幕干| 欧美极品性爱天天射| 色色毛片| 久久78| 天天拍夜夜| 欧美日本不卡在线| 欧美性少妇| 欧美大色交| 97色妞| 天天日天天射天天干| 伊人97色天使| 嗯嗯,啊啊,国产精品| 女优免费一区二区永久| av资源在线播放天堂| 天天干天天操天天干天天操| 人人操人人操人人人操| 18禁在线视频| 国产精品麻豆成人av| 天天影视色香欲综合网小说| 久久久久久久精| 99re免费| 福利视频合集| 欧美成人免费在线观看| 久久91| 精品人妻中文字幕高清| 亚洲男人电影天堂| 放黄片放3级黄片没穿衣服| 九九九九久久久久| 91精品老女人| 丁香六月激情综合| 色网在线| 五毛骚逼极品美女怕怕| 国产精品在线网站| 色网1| 任我爽在线视频免费观看| 欧亚久久偷拍视频| 欧美高清无码免费视频高清版| 探花精品 一区二区| 国产高清成人mv在线观看| 婷婷五月av| 亚洲精品国产AV天美传媒|