精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

細(xì)談八種架構(gòu)設(shè)計(jì)模式,你知道嗎?

開(kāi)發(fā) 架構(gòu)
作為一個(gè)工作10年以上的老碼農(nóng),經(jīng)歷的系統(tǒng)架構(gòu)設(shè)計(jì)也算不少,接下來(lái),我會(huì)把工作中用到的一些架構(gòu)方面的設(shè)計(jì)模式分享給大家,望大家少走彎路。總體而言,共有八種。

[[284285]]

一、什么是架構(gòu)

我想這個(gè)問(wèn)題,十個(gè)人回答得有十一個(gè)答案,因?yàn)榱硗獾哪且粋€(gè)是大家妥協(xié)的結(jié)果。哈哈,我理解,架構(gòu)就是骨架,如下圖所示:

[[284286]]

人類(lèi)的身體的支撐是主要由骨架來(lái)承擔(dān)的,然后是其上的肌肉、神經(jīng)、皮膚。架構(gòu)對(duì)于軟件的重要性不亞于骨架對(duì)人類(lèi)身體的重要性。

二、. 什么是設(shè)計(jì)模式

這個(gè)問(wèn)題我問(wèn)過(guò)的面試者不下于數(shù)十次,回答五花八門(mén),在我看來(lái),模式就是經(jīng)驗(yàn),設(shè)計(jì)模式就是設(shè)計(jì)經(jīng)驗(yàn),有了這些經(jīng)驗(yàn),我們就能在特定情況下使用特定的設(shè)計(jì)、組合設(shè)計(jì),這樣可以大大節(jié)省我們的設(shè)計(jì)時(shí)間,提高工作效率。

作為一個(gè)工作10年以上的老碼農(nóng),經(jīng)歷的系統(tǒng)架構(gòu)設(shè)計(jì)也算不少,接下來(lái),我會(huì)把工作中用到的一些架構(gòu)方面的設(shè)計(jì)模式分享給大家,望大家少走彎路。總體而言,共有八種,分別是:

  1. 單庫(kù)單應(yīng)用模式:最簡(jiǎn)單的,可能大家都見(jiàn)過(guò)
  2. 內(nèi)容分發(fā)模式:目前用的比較多
  3. 查詢(xún)分離模式:對(duì)于大并發(fā)的查詢(xún)、業(yè)務(wù)
  4. 微服務(wù)模式:適用于復(fù)雜的業(yè)務(wù)模式的拆解
  5. 多級(jí)緩存模式:可以把緩存玩的很好
  6. 分庫(kù)分表模式:解決單機(jī)數(shù)據(jù)庫(kù)瓶頸
  7. 彈性伸縮模式:解決波峰波谷業(yè)務(wù)流量不均勻的方法之一
  8. 多機(jī)房模式:解決高可用、高性能的一種方法

三、單庫(kù)單應(yīng)用模式

這是最簡(jiǎn)單的一種設(shè)計(jì)模式,我們的大部分本科畢業(yè)設(shè)計(jì)、一些小的應(yīng)用,基本上都是這種模式,這種模式的一般設(shè)計(jì)見(jiàn)下圖:

細(xì)談八種架構(gòu)設(shè)計(jì)模式及其優(yōu)缺點(diǎn)概述

如上圖所示,這種模式一般只有一個(gè)數(shù)據(jù)庫(kù),一個(gè)業(yè)務(wù)應(yīng)用層,一個(gè)后臺(tái)管理系統(tǒng),所有的業(yè)務(wù)都是用過(guò)業(yè)務(wù)層完成的,所有的數(shù)據(jù)也都是存儲(chǔ)在一個(gè)數(shù)據(jù)庫(kù)中的,好一點(diǎn)會(huì)有數(shù)據(jù)庫(kù)的同步。雖然簡(jiǎn)單,但是也并不是一無(wú)是處。

  • 優(yōu)點(diǎn):結(jié)構(gòu)簡(jiǎn)單、開(kāi)發(fā)速度快、實(shí)現(xiàn)簡(jiǎn)單,可用于產(chǎn)品的第一版等有原型驗(yàn)證需求、用戶(hù)少的設(shè)計(jì)。
  • 缺點(diǎn):性能差、基本沒(méi)有高可用、擴(kuò)展性差,不適用于大規(guī)模部署、應(yīng)用等生產(chǎn)環(huán)境。

四、內(nèi)容分發(fā)模式

基本上所有的大型的網(wǎng)站都有或多或少的采用這一種設(shè)計(jì)模式,常見(jiàn)的應(yīng)用場(chǎng)景是使用CDN技術(shù)把網(wǎng)頁(yè)、圖片、CSS、JS等這些靜態(tài)資源分發(fā)到離用戶(hù)最近的服務(wù)器。這種模式的一般設(shè)計(jì)見(jiàn)下圖:

細(xì)談八種架構(gòu)設(shè)計(jì)模式及其優(yōu)缺點(diǎn)概述

如上圖所示,這種模式較單庫(kù)單應(yīng)用模式多了一個(gè)CDN、一個(gè)云存儲(chǔ)OSS(七牛、又拍等雷同)。一個(gè)典型的應(yīng)用流程(以用戶(hù)上傳、查看圖片需求為例)如下:

  • 上傳的時(shí)候,用戶(hù)選擇本地機(jī)器上的一個(gè)圖片進(jìn)行上傳
  • 程序會(huì)把這個(gè)圖片上傳到云存儲(chǔ)OSS上,并返回該圖片的一個(gè)URL
  • 程序把這個(gè)URL字符串存儲(chǔ)在業(yè)務(wù)數(shù)據(jù)庫(kù)中,上傳完成。
  • 查看的時(shí)候,程序從業(yè)務(wù)數(shù)據(jù)庫(kù)得到該圖片的URL
  • 程序通過(guò)DNS查詢(xún)這個(gè)URL的圖片服務(wù)器
  • 智能DNS會(huì)解析這個(gè)URL,得到與用戶(hù)最近的服務(wù)器(或集群)的地址A
  • 然后把服務(wù)器A上的圖片返回給程序
  • 程序顯示該圖片,查看完成。

由上可知,這個(gè)模式的關(guān)鍵是智能DNS,它能夠解析出離用戶(hù)最近的服務(wù)器。運(yùn)行原理大致是:根據(jù)請(qǐng)求者的IP得到請(qǐng)求地點(diǎn)B,然后通過(guò)計(jì)算或者配置得到與B最近或通訊時(shí)間最短的服務(wù)器C,然后把C的IP地址返回給請(qǐng)求者。這種模式的優(yōu)缺點(diǎn)如下:

  • 優(yōu)點(diǎn):資源下載快、無(wú)需過(guò)多的開(kāi)發(fā)與配置,同時(shí)也減輕了后端服務(wù)器對(duì)資源的存儲(chǔ)壓力,減少帶寬的使用。
  • 缺點(diǎn):目前來(lái)說(shuō)OSS,CDN的價(jià)格還是稍微有些貴(雖然已經(jīng)降價(jià)好幾次了),只適用于中小規(guī)模的應(yīng)用,另外由于網(wǎng)絡(luò)傳輸?shù)难舆t、CDN的同步策略等,會(huì)有一些一致性、更新慢方面的問(wèn)題。

五、查詢(xún)分離模式

這種模式主要解決單機(jī)數(shù)據(jù)庫(kù)壓力過(guò)大,從而導(dǎo)致業(yè)務(wù)緩慢甚至超時(shí),查詢(xún)響應(yīng)時(shí)間變長(zhǎng)的問(wèn)題,也包括需要大量數(shù)據(jù)庫(kù)服務(wù)器計(jì)算資源的查詢(xún)請(qǐng)求。這個(gè)可以說(shuō)是單庫(kù)單應(yīng)用模式的升級(jí)版本,也是技術(shù)架構(gòu)迭代演進(jìn)過(guò)程中的必經(jīng)之路。

這種模式的一般設(shè)計(jì)見(jiàn)下圖:

細(xì)談八種架構(gòu)設(shè)計(jì)模式及其優(yōu)缺點(diǎn)概述

如上圖所示,這種模式較單庫(kù)單應(yīng)用模式與內(nèi)容分發(fā)模式多了幾個(gè)部分,一個(gè)是業(yè)務(wù)數(shù)據(jù)庫(kù)的主從分離,一個(gè)是引入了ES,為什么要這樣?都解決了哪些痛點(diǎn),下面具體結(jié)合業(yè)務(wù)需求場(chǎng)景進(jìn)行敘述。

場(chǎng)景一:全文關(guān)鍵詞檢索

我想這個(gè)需求,絕大多數(shù)應(yīng)用都會(huì)有,如果使用傳統(tǒng)的數(shù)據(jù)庫(kù)技術(shù),大部分可能都會(huì)使用like這種SQL語(yǔ)句,高級(jí)一點(diǎn)可能是先分詞,然后通過(guò)分詞index相關(guān)的記錄。SQL語(yǔ)句的性能問(wèn)題與全表掃描機(jī)制導(dǎo)致了非常嚴(yán)重的性能問(wèn)題,現(xiàn)在基本上很少見(jiàn)到。

這里的ES是ElasticSearch的縮寫(xiě),是一種查詢(xún)引擎,類(lèi)似的還有Solr等,都差不多的技術(shù),ES較Solr配置簡(jiǎn)單、使用方便,所以這里選用了它。另外,ES支持橫向擴(kuò)展,理論上沒(méi)有性能的瓶頸。同時(shí),還支持各種插件、自定義分詞器等,可擴(kuò)展性較強(qiáng)。在這里,使用ES不僅可以替代數(shù)據(jù)庫(kù)完成全文檢索功能,還可以實(shí)現(xiàn)諸如分頁(yè)、排序、分組、分面等功能。具體的,請(qǐng)同學(xué)們自行學(xué)習(xí)之。那怎么使用呢?一個(gè)一般的流程是這樣的:

  1. 服務(wù)端把一條業(yè)務(wù)數(shù)據(jù)落庫(kù)
  2. 服務(wù)端異步把該條數(shù)據(jù)發(fā)送到ES
  3. ES把該條記錄按照規(guī)則、配置放入自己的索引庫(kù)
  4. 客戶(hù)端查詢(xún)的時(shí)候,由服務(wù)端把這個(gè)請(qǐng)求發(fā)送到ES,得到數(shù)據(jù)后,根據(jù)需求拼裝、組合數(shù)據(jù),返回給客戶(hù)端
  5. 實(shí)際中怎么用,還請(qǐng)同學(xué)們根據(jù)實(shí)際情況做組合、取舍。

場(chǎng)景二:大量的普通查詢(xún)

這個(gè)場(chǎng)景是指我們的業(yè)務(wù)中的大部分輔助性的查詢(xún),如:取錢(qián)的時(shí)候先查詢(xún)一下余額,根據(jù)用戶(hù)的ID查詢(xún)用戶(hù)的記錄,取得該用戶(hù)最新的一條取錢(qián)記錄等。我們肯定是要天天要用的,而且用的還非常多。同時(shí)呢,我們的寫(xiě)入請(qǐng)求也是非常多的,導(dǎo)致大量的寫(xiě)入、查詢(xún)操作壓向同一數(shù)據(jù)庫(kù),然后,數(shù)據(jù)庫(kù)掛了,系統(tǒng)掛了,領(lǐng)導(dǎo)生氣了,被開(kāi)除了,還不起房貸了,露宿街頭了,老婆跟別人跑了,......

不敢想,所以要求我們必須分散數(shù)據(jù)庫(kù)的壓力,一個(gè)業(yè)界較成熟的方案就是數(shù)據(jù)庫(kù)的讀寫(xiě)分離,寫(xiě)的時(shí)候入主庫(kù),讀的時(shí)候讀從庫(kù)。這樣就把壓力分散到不同的數(shù)據(jù)庫(kù)了,如果一個(gè)讀庫(kù)性能不行,扛不住的話(huà),可以一主多從,橫向擴(kuò)展。可謂是一劑良藥啊!那怎么使用呢?一個(gè)一般的流程是這樣的:

服務(wù)端把一條業(yè)務(wù)數(shù)據(jù)落庫(kù)

數(shù)據(jù)庫(kù)同步或異步或半同步把該條數(shù)據(jù)復(fù)制到從庫(kù)

服務(wù)端讀數(shù)據(jù)的時(shí)候直接去從庫(kù)讀相應(yīng)的數(shù)據(jù)

比較簡(jiǎn)單吧,一些聰明的、愛(ài)思考的、上進(jìn)的同學(xué)可能發(fā)現(xiàn)問(wèn)題了,也包括上面介紹的場(chǎng)景一,就是延遲問(wèn)題,如:數(shù)據(jù)還沒(méi)有到從庫(kù),我就馬上讀,那么是讀不到的,會(huì)發(fā)生問(wèn)題的。

對(duì)于這個(gè)問(wèn)題,各家公司解決的思路不一樣,方法不盡相同。一個(gè)普遍的解決方案是:讀不到就讀主庫(kù),當(dāng)然這么說(shuō)也是有前提條件的,但具體的方案這里就不一一展開(kāi)了,我可能會(huì)在接下來(lái)的分享中詳解各種方案。

另外,關(guān)于數(shù)據(jù)庫(kù)的復(fù)制模式,還請(qǐng)同學(xué)們自行學(xué)習(xí),太多了,這里說(shuō)不清。該總結(jié)一下這種模式的優(yōu)缺點(diǎn)的了,如下:

  • 優(yōu)點(diǎn):減少數(shù)據(jù)庫(kù)的壓力,理論上提供無(wú)限高的讀性能,間接提高業(yè)務(wù)(寫(xiě))的性能,專(zhuān)用的查詢(xún)、索引、全文(分詞)解決方案。
  • 缺點(diǎn):數(shù)據(jù)延遲,數(shù)據(jù)一致性的保證。

六、微服務(wù)模式

上面的模式看似不錯(cuò),解決了性能問(wèn)題,我可以不用露宿街頭了、老婆還是我的,哈哈。但是

軟件系統(tǒng)天生的復(fù)雜性決定了,除了性能,還有其他諸如高可用、健壯性等大量問(wèn)題等待我們解決,再加上各個(gè)部門(mén)間的撕逼、扯皮,更讓我們碼農(nóng)雪上加霜,所以

繼續(xù)吧......

微服務(wù)模式可以說(shuō)是最近的熱點(diǎn),花花綠綠、大大小小、國(guó)內(nèi)國(guó)外的公司都在鼓吹,實(shí)踐這個(gè)模式,可是大部分都沒(méi)有弄清楚為什么要這么做,也并不知道這么做有什么好處、壞處,在這里,我將以我自己的親身實(shí)踐說(shuō)一下我對(duì)這個(gè)模式的看法,不喜勿噴!隨著業(yè)務(wù)與人員的增加,遇到了如下的問(wèn)題:

  1. 單機(jī)數(shù)據(jù)庫(kù)寫(xiě)請(qǐng)求量大量增加,導(dǎo)致數(shù)據(jù)庫(kù)壓力變大
  2. 數(shù)據(jù)庫(kù)一旦掛了,那么整個(gè)業(yè)務(wù)都掛了
  3. 業(yè)務(wù)代碼越來(lái)越多,都在一個(gè)GIT里,越來(lái)越難以維護(hù)
  4. 代碼腐化嚴(yán)重、臭味越來(lái)越濃
  5. 上線越來(lái)越頻繁,經(jīng)常是一個(gè)小功能的修改,就要整個(gè)大項(xiàng)目要重新編譯
  6. 部門(mén)越來(lái)越多,該哪個(gè)部門(mén)改動(dòng)大項(xiàng)目中的哪個(gè)東西,撕逼的厲害
  7. 其他一些外圍系統(tǒng)直接連接數(shù)據(jù)庫(kù),導(dǎo)致一旦數(shù)據(jù)庫(kù)結(jié)構(gòu)發(fā)生變化,所有的相關(guān)系統(tǒng)都要通知,甚至對(duì)修改不敏感的系統(tǒng)也要通知
  8. 每個(gè)應(yīng)用服務(wù)器需要開(kāi)通所有的權(quán)限、網(wǎng)絡(luò)、FTP、各種各樣的,因?yàn)槊總€(gè)服務(wù)器部署的應(yīng)用都是一樣的
  9. 作為架構(gòu)師,我已經(jīng)失去了對(duì)這個(gè)系統(tǒng)的把控......

為了解決上述問(wèn)題,我司使用了微服務(wù)模式,這種模式的一般設(shè)計(jì)見(jiàn)下圖:

細(xì)談八種架構(gòu)設(shè)計(jì)模式及其優(yōu)缺點(diǎn)概述

如上圖所示,我把業(yè)務(wù)分塊,做了垂直切分,切成一個(gè)個(gè)獨(dú)立的系統(tǒng),每個(gè)系統(tǒng)各自衍化,有自己的庫(kù)、緩存、ES等輔助系統(tǒng),系統(tǒng)之間的實(shí)時(shí)交互通過(guò)RPC,異步交互通過(guò)MQ,通過(guò)這種組合,共同完成整個(gè)系統(tǒng)功能。

那么,這么做是否真的解決上述問(wèn)題了呢?不玩虛的,一個(gè)個(gè)來(lái)說(shuō)。對(duì)于問(wèn)題一,由于拆分成了多個(gè)子系統(tǒng),系統(tǒng)的壓力被分散了,而各個(gè)子系統(tǒng)都有自己的數(shù)據(jù)庫(kù)實(shí)例,所以數(shù)據(jù)庫(kù)的壓力變小。

對(duì)于問(wèn)題二,一個(gè)子系統(tǒng)A的數(shù)據(jù)庫(kù)掛了,只是影響到系統(tǒng)A和使用系統(tǒng)A的那些功能,不會(huì)所有的功能不可用,從而解決一個(gè)數(shù)據(jù)庫(kù)掛了,導(dǎo)致所有功能不可用的問(wèn)題。

問(wèn)題三、四,也因?yàn)椴鸱值玫搅私鉀Q,各個(gè)子系統(tǒng)有自己獨(dú)立的GIT代碼庫(kù),不會(huì)相互影響。通用的模塊可通過(guò)庫(kù)、服務(wù)、平臺(tái)的形式解決。

問(wèn)題五,子系統(tǒng)A發(fā)生改變,需要上線,那么我只需要編譯A,然后上線就可以了,不需要其他系統(tǒng)做同樣的事情。

問(wèn)題六,順應(yīng)了康威定律,我部門(mén)該干什么事、輸出什么,也通過(guò)服務(wù)的形式暴露出來(lái),我部只管把我部的職責(zé)、軟件功能做好就可以。

問(wèn)題七,所有需要我部數(shù)據(jù)的需求,都通過(guò)接口的形式發(fā)布出去,客戶(hù)通過(guò)接口獲取數(shù)據(jù),從而屏蔽了底層數(shù)據(jù)庫(kù)結(jié)構(gòu),甚至數(shù)據(jù)來(lái)源,我部只需保證我部的接口契約沒(méi)有發(fā)生變化即可,新的需求增加新的接口,不會(huì)影響老的接口。

問(wèn)題八,不同的子系統(tǒng)需要不同的權(quán)限,這個(gè)問(wèn)題也優(yōu)雅的解決了。

問(wèn)題九,暫時(shí)控制住了復(fù)雜性,我只需控制好大的方面,定義好系統(tǒng)邊界、接口、大的流程,然后再分而治之、逐個(gè)擊破、合縱連橫。

目前來(lái)說(shuō),所有問(wèn)題得到解決!bingo!

但是,還有許多其他的副作用會(huì)隨之產(chǎn)生,如RPC、MQ的超高穩(wěn)定性、超高性能,網(wǎng)絡(luò)延遲,數(shù)據(jù)一致性等問(wèn)題,這里就不展開(kāi)來(lái)講了,太多了,一本書(shū)都講不完。

另外,對(duì)于這個(gè)模式來(lái)說(shuō),最難把握的是度,切記不要切分過(guò)細(xì),我見(jiàn)過(guò)一個(gè)功能一個(gè)子系統(tǒng),上百個(gè)方法分成上百個(gè)子系統(tǒng)的,真的是太過(guò)度了。實(shí)踐中,一個(gè)較為可行的方法是:能不分就不分,除非有非常必要的理由!。

  • 優(yōu)點(diǎn):相對(duì)高性能,可擴(kuò)展性強(qiáng),高可用,適合于中等以上規(guī)模公司架構(gòu)。
  • 缺點(diǎn):復(fù)雜、度不好把握。指不僅需要一個(gè)能在高層把控大方向、大流程、總體技術(shù)的人,還需要能夠針對(duì)各個(gè)子系統(tǒng)有針對(duì)性的開(kāi)發(fā)。把握不好度或者濫用的話(huà),這個(gè)模式適得其反!

七、多級(jí)緩存模式

這個(gè)模式可以說(shuō)是應(yīng)對(duì)超高查詢(xún)壓力的一種普遍采用的策略,基本的思想就是在所有鏈路的地方,能加緩存就加緩存,如下圖所示:

細(xì)談八種架構(gòu)設(shè)計(jì)模式及其優(yōu)缺點(diǎn)概述

如上圖所示,一般在三個(gè)地方加入緩存,一個(gè)是客戶(hù)端處,一個(gè)是API網(wǎng)關(guān)處,一個(gè)是具體的后端業(yè)務(wù)處,下面分別介紹。

客戶(hù)端處緩存:這個(gè)地方加緩存可以說(shuō)是效果最好的---無(wú)延遲。因?yàn)椴挥媒?jīng)過(guò)長(zhǎng)長(zhǎng)的網(wǎng)絡(luò)鏈條去后端業(yè)務(wù)處獲取數(shù)據(jù),從而導(dǎo)致加載時(shí)間過(guò)長(zhǎng),客戶(hù)流失等損失。雖然有CDN的支持,但是從客戶(hù)端到CDN還是有網(wǎng)絡(luò)延遲的,雖然不大。具體的技術(shù)依據(jù)不同的客戶(hù)端而定,對(duì)于WEB來(lái)講,有瀏覽器本地緩存、Cookie、Storage、緩存策略等技術(shù);對(duì)于APP來(lái)講,有本地?cái)?shù)據(jù)庫(kù)、本地文件、本地內(nèi)存、進(jìn)程內(nèi)緩存支持。以上提到的各種技術(shù)有興趣的同學(xué)可以繼續(xù)展開(kāi)來(lái)學(xué)習(xí)。如果客戶(hù)端緩存沒(méi)有命中,那么就會(huì)去后端業(yè)務(wù)拿數(shù)據(jù),一般來(lái)講,都會(huì)有個(gè)API網(wǎng)關(guān),在這里加緩存也是非常有必要的。

API網(wǎng)關(guān)處緩存:這個(gè)地方加緩存的好處是不用把請(qǐng)求發(fā)送到后方,直接在這里就處理了,然后返回給請(qǐng)求者。常見(jiàn)的技術(shù),如http請(qǐng)求,API網(wǎng)關(guān)用的基本都是nginx,可以使用nginx本身的緩存模塊,也可以使用Lua+Redis技術(shù)定制化。其他的也都大同小異。

后端業(yè)務(wù)處:這個(gè)我想就不用多說(shuō)了,大家應(yīng)該差不多都知道,什么Redis,Memcache,Jvm內(nèi)等等,不熬述了。

實(shí)踐中,要結(jié)合具體的實(shí)際情況,綜合利用各級(jí)緩存技術(shù),使得各種請(qǐng)求最大程度的在到達(dá)后端業(yè)務(wù)之前就被解決掉,從而減少后端服務(wù)壓力、減少占用帶寬、增強(qiáng)用戶(hù)體驗(yàn)。至于是否只有這三個(gè)地方加緩存,我覺(jué)得要活學(xué)活用,心法比劍法重要!總結(jié)一下這個(gè)模式的優(yōu)缺點(diǎn):

  • 優(yōu)點(diǎn):抗住大量讀請(qǐng)求,減少后端壓力。
  • 缺點(diǎn):數(shù)據(jù)一致性問(wèn)題較突出,容易發(fā)生雪崩,即:如果客戶(hù)端緩存失效、API網(wǎng)關(guān)緩存失效,那么所有的大量請(qǐng)求瞬間壓向后端業(yè)務(wù)系統(tǒng),后果可想而知。

八、分庫(kù)分表模式

這種模式主要解決單表寫(xiě)入、讀取、存儲(chǔ)壓力過(guò)大,從而導(dǎo)致業(yè)務(wù)緩慢甚至超時(shí),交易失敗,容量不夠的問(wèn)題。一般有水平切分和垂直切分兩種,這里主要介紹水平切分。這個(gè)模式也是技術(shù)架構(gòu)迭代演進(jìn)過(guò)程中的必經(jīng)之路。

這種模式的一般設(shè)計(jì)見(jiàn)下圖:

細(xì)談八種架構(gòu)設(shè)計(jì)模式及其優(yōu)缺點(diǎn)概述

如上圖所示紅色部分,把一張表分到了幾個(gè)不同的庫(kù)中,從而分擔(dān)壓力。是不是很籠統(tǒng)?哈哈,那我們接下來(lái)就詳細(xì)的講解一下。首先澄清幾個(gè)概念,如下:

主機(jī):硬件,指一臺(tái)物理機(jī),或者虛擬機(jī),有自己的CPU,內(nèi)存,硬盤(pán)等。

實(shí)例:數(shù)據(jù)庫(kù)實(shí)例,如一個(gè)MySQL服務(wù)進(jìn)程。一個(gè)主機(jī)可以有多個(gè)實(shí)例,不同的實(shí)例有不同的進(jìn)程,監(jiān)聽(tīng)不同的端口。

庫(kù):指表的集合,如學(xué)校庫(kù),可能包含教師表、學(xué)生表、食堂表等等,這些表在一個(gè)庫(kù)中。一個(gè)實(shí)例中可以有多個(gè)庫(kù)。庫(kù)與庫(kù)之間用庫(kù)名來(lái)區(qū)分。

表:庫(kù)中的表,不必多說(shuō),不懂的就不用往下看了,不解釋。

那么怎么把單表分散呢?到底怎么個(gè)分發(fā)呢?分發(fā)到哪里呢?以下是幾個(gè)工作中的實(shí)踐,分享一下:

主機(jī):這是最主要的也是最重要的點(diǎn),本質(zhì)上分庫(kù)分表是因?yàn)橛?jì)算與存儲(chǔ)資源不夠?qū)е碌模@種資源主要是由物理機(jī),主機(jī)提供的,所以在這里分是最基本的,畢竟沒(méi)有可用的計(jì)算資源,怎么分效果都不是太好的。

實(shí)例:實(shí)例控制著連接數(shù),同時(shí)受OS限制,CPU、內(nèi)存、硬盤(pán)、網(wǎng)絡(luò)IO也會(huì)受間接影響。會(huì)出現(xiàn)熱實(shí)例的現(xiàn)象,即:有些實(shí)例特別忙,有些實(shí)例非常的空閑。一個(gè)典型的現(xiàn)象是:由于單表反應(yīng)慢,導(dǎo)致連接池被打滿(mǎn),所有其他的業(yè)務(wù)都受影響了。這時(shí)候,把表分到不同的實(shí)例是有一些效果的。

庫(kù):一般是由于單庫(kù)中最大單表數(shù)量的限制,才采取分庫(kù)。

表:?jiǎn)伪韷毫^(guò)大,索引量大,容量大,單表的鎖。據(jù)以上,把單表水平切分成不同的表。

大型應(yīng)用中,都是一臺(tái)主機(jī)上只有一個(gè)實(shí)例,一個(gè)實(shí)例中只有一個(gè)庫(kù),庫(kù)==實(shí)例==主機(jī),所以才有了分庫(kù)分表這個(gè)簡(jiǎn)稱(chēng)。

既然知道了基本理論,那么具體是怎么做的呢?邏輯是怎么跑的呢?接下來(lái)以一個(gè)例子來(lái)講解一下。

這個(gè)需求很簡(jiǎn)單,用戶(hù)表(user),單表數(shù)據(jù)量1億,查詢(xún)、插入、存儲(chǔ)都出現(xiàn)了問(wèn)題,怎么辦呢?

首先,分析問(wèn)題,這個(gè)明顯是由于數(shù)據(jù)量太大了而導(dǎo)致的問(wèn)題。

其次,設(shè)計(jì)方案,可以分為10個(gè)庫(kù),這樣每個(gè)庫(kù)的數(shù)據(jù)量就降到了1KW,單表1KW數(shù)據(jù)量還是有些大,而且不利于以后量的增長(zhǎng),所以每個(gè)庫(kù)再分100個(gè)表,這個(gè)每個(gè)單表數(shù)據(jù)量就為10W了,對(duì)于查詢(xún)、索引更新、單表文件大小、打開(kāi)速度,都有一些益處。接下來(lái),給IT部門(mén)打電話(huà),要10臺(tái)物理機(jī),擴(kuò)展數(shù)據(jù)庫(kù)......

最后,邏輯實(shí)現(xiàn),這里應(yīng)該是最有學(xué)問(wèn)的地方。首先是寫(xiě)入數(shù)據(jù),需要知道寫(xiě)到哪個(gè)分庫(kù)分表中,讀也是一樣的,所以,需要有個(gè)請(qǐng)求路由層,負(fù)責(zé)把請(qǐng)求分發(fā)、轉(zhuǎn)換到不同的庫(kù)表中,一般有路由規(guī)則的概念。

怎么樣,簡(jiǎn)單吧?哈哈,too 那義務(wù)。說(shuō)說(shuō)這個(gè)模式的問(wèn)題,主要是帶來(lái)了事務(wù)上的問(wèn)題,因?yàn)榉謳?kù)分表,事務(wù)完成不了,而分布式事務(wù)又太笨重,所以這里需要有一定的策略,保證在這種情況下事務(wù)能夠完成。采取的策略如:最終一致性、復(fù)制、特殊設(shè)計(jì)等。再有就是業(yè)務(wù)代碼的改造,一些關(guān)聯(lián)查詢(xún)要改造,一些單表orderBy的問(wèn)題需要特殊處理,也包括groupBy語(yǔ)句,如何解決這些副作用不是一句兩句能說(shuō)清楚的,以后有時(shí)間,我單獨(dú)講講這些。

該總結(jié)一下這種模式的優(yōu)缺點(diǎn)的了,如下:

  • 優(yōu)點(diǎn):減少數(shù)據(jù)庫(kù)單表的壓力。
  • 缺點(diǎn):事務(wù)保證困難、業(yè)務(wù)邏輯需要做大量改造。

九、彈性伸縮模式

這種模式主要解決突發(fā)流量的到來(lái),導(dǎo)致無(wú)法橫向擴(kuò)展或者橫向擴(kuò)展太慢,進(jìn)而影響業(yè)務(wù),全站崩潰的問(wèn)題。這個(gè)模式是一種相對(duì)來(lái)說(shuō)比較高級(jí)的技術(shù),也是各個(gè)大公司目前都在研究、試用的技術(shù)。截至今日,有這種思想的架構(gòu)師就已經(jīng)是很不錯(cuò)了,能夠拿到較高薪資,更別提那些已經(jīng)實(shí)踐過(guò)的,甚至實(shí)現(xiàn)了底層系統(tǒng)的那些,所以,你懂得......

這種模式的一般設(shè)計(jì)見(jiàn)下圖:

細(xì)談八種架構(gòu)設(shè)計(jì)模式及其優(yōu)缺點(diǎn)概述

如上圖所示,多了一個(gè)彈性伸縮服務(wù),用來(lái)動(dòng)態(tài)的增加、減少實(shí)例。原理上非常簡(jiǎn)單,但是這個(gè)模式到底解決什么問(wèn)題呢?先說(shuō)說(shuō)由來(lái)和意義。

每年的雙11、六一八或者一些大促到來(lái)之前,我們都會(huì)為大流量的到來(lái)做以下幾個(gè)方面的工作:

提前準(zhǔn)備10倍甚至更多的機(jī)器,即使用不上也要放在那里備著,以防萬(wàn)一。這樣浪費(fèi)了大量的資源。

每臺(tái)機(jī)器配置、調(diào)試、引流,以便讓所有的機(jī)器都可用。這樣浪費(fèi)了大量的人力、物力,更容易出錯(cuò)。

如果機(jī)器準(zhǔn)備不充分,那么還要加班加點(diǎn)的重復(fù)上面的工作。這樣做特別容易出錯(cuò),引來(lái)領(lǐng)導(dǎo)的不滿(mǎn),沒(méi)時(shí)間回家陪老婆,然后你的老婆就......(自己想)

在雙十一之后,我們還要人工做縮容,非常的辛苦。一般一年中會(huì)有多次促銷(xiāo),那么我們就會(huì)一直這樣,實(shí)在是煩!

最嚴(yán)重的,突然間的大流量爆發(fā),會(huì)讓我們觸不及防,半夜起來(lái)擴(kuò)容是在正常不過(guò)的事情,為此,我們偷懶起來(lái),要更多的機(jī)器備著,也就出現(xiàn)了大量的cpu利用率為1%的機(jī)器。

我相信,如果你是老板一定很震驚吧!!!

哈哈,那么如何改變這種情況呢?請(qǐng)接著看

為此,首先把所有的計(jì)算資源整合成資源池的概念,然后通過(guò)一些策略、監(jiān)控、服務(wù),動(dòng)態(tài)的從資源池中獲取資源,用完后在放回到池子中,供其他系統(tǒng)使用。

具體實(shí)現(xiàn)上比較成熟的兩種資源池方案是VM、docker,每個(gè)都有著自己強(qiáng)大的生態(tài)。監(jiān)控的點(diǎn)有CPU、內(nèi)存、硬盤(pán)、網(wǎng)絡(luò)IO、服務(wù)質(zhì)量等,根據(jù)這些,在配合一些預(yù)留、擴(kuò)張、收縮策略,就可以簡(jiǎn)單的實(shí)現(xiàn)自動(dòng)伸縮。怎么樣?是不是很神奇?深入的內(nèi)容我們會(huì)在的碼農(nóng)原創(chuàng)的公眾號(hào)文章中詳細(xì)介紹。

該總結(jié)一下這種模式的優(yōu)缺點(diǎn)的了,如下:

  • 優(yōu)點(diǎn):彈性、隨需計(jì)算,充分優(yōu)化企業(yè)計(jì)算資源。
  • 缺點(diǎn):應(yīng)用要從架構(gòu)層做到可橫向擴(kuò)展化改造、依賴(lài)的底層配套比較多,對(duì)技術(shù)水平、實(shí)力、應(yīng)用規(guī)模要求較高。

十、多機(jī)房模式

這種模式主要解決不同地區(qū)高性能、高可用的問(wèn)題。

隨著應(yīng)用用戶(hù)不斷的增加,用戶(hù)群體分布在全球各地,如果把服務(wù)器部署在一個(gè)地方,一個(gè)機(jī)房,比如北京,那么美國(guó)的用戶(hù)使用應(yīng)用的時(shí)候就會(huì)特別慢,因?yàn)槊恳粋€(gè)請(qǐng)求都需要通過(guò)海底光纜走上個(gè)那么一秒鐘(預(yù)估)左右,這樣對(duì)用戶(hù)體驗(yàn)及其不好。怎么辦?使用多機(jī)房部署。

這種模式的一般設(shè)計(jì)見(jiàn)下圖:

細(xì)談八種架構(gòu)設(shè)計(jì)模式及其優(yōu)缺點(diǎn)概述

如上圖所示,一個(gè)典型的用戶(hù)請(qǐng)求流程如下:

用戶(hù)請(qǐng)求一個(gè)鏈接A

通過(guò)DNS智能解析到離用戶(hù)最近的機(jī)房B

使用B機(jī)房服務(wù)鏈接A

是不是覺(jué)得很簡(jiǎn)單,沒(méi)啥?其實(shí)這里面的問(wèn)題沒(méi)有表面這么簡(jiǎn)單,下面一一道來(lái)。

首先是數(shù)據(jù)同步問(wèn)題,在中國(guó)產(chǎn)生的數(shù)據(jù)要同步到美國(guó),美國(guó)的也一樣,數(shù)據(jù)同步就會(huì)涉及數(shù)據(jù)版本、一致性、更新丟棄、刪除等問(wèn)題。

其次是一地多機(jī)房的請(qǐng)求路由問(wèn)題,典型的是如上圖,中國(guó)的北京機(jī)房和杭州機(jī)房,如果北京機(jī)房掛了,那么要能夠通過(guò)路由把所有發(fā)往北京機(jī)房的請(qǐng)求轉(zhuǎn)發(fā)到杭州機(jī)房。異地也存在這個(gè)問(wèn)題。

所以,多機(jī)房模式,也就是異地多活并不是那么的簡(jiǎn)單,這里只是起了個(gè)頭,具體的有哪些坑,會(huì)在另一篇文章中介紹。

該總結(jié)一下這種模式的優(yōu)缺點(diǎn)的了,如下:

  • 優(yōu)點(diǎn):高可用、高性能、異地多活。
  • 缺點(diǎn):數(shù)據(jù)同步、數(shù)據(jù)一致性、請(qǐng)求路由。

至此,整個(gè)關(guān)于八種架構(gòu)設(shè)計(jì)模式及其優(yōu)缺點(diǎn)概述就介紹完了,大約1W字左右。最后,我想說(shuō)的是沒(méi)有銀彈、靈活運(yùn)用,共勉!

 

責(zé)任編輯:武曉燕 來(lái)源: 今日頭條
相關(guān)推薦

2019-11-07 11:49:14

架構(gòu)運(yùn)維技術(shù)

2020-05-14 14:48:15

架構(gòu)模式單庫(kù)

2024-11-26 14:29:48

2018-07-04 11:02:23

無(wú)線傳輸模式

2024-07-03 08:33:08

2019-02-12 11:15:15

Spring設(shè)計(jì)模式Java

2020-09-11 06:39:29

ThreadLocal線程

2024-08-20 08:29:55

2023-02-02 14:24:08

物聯(lián)網(wǎng)數(shù)據(jù)分析云平臺(tái)

2022-07-05 08:05:00

策略模式接口實(shí)現(xiàn)類(lèi)

2023-12-29 22:41:12

同步架構(gòu)業(yè)務(wù)

2021-01-06 08:48:35

CSS 命名模塊

2024-05-20 10:37:08

Rust模式通信

2024-04-07 00:00:00

ESlint命令變量

2024-05-28 09:12:10

2021-02-06 21:57:40

Debug模式Release

2023-04-26 10:21:04

2023-12-12 08:41:01

2024-04-30 09:02:48

2023-12-20 08:23:53

NIO組件非阻塞
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

中文字幕制服丝袜成人av| 99久久99久久精品国产片桃花| 亚洲综合色视频| 好吊妞www.84com只有这里才有精品| 久久久久久久久久91| 亚洲欧美激情在线观看| 亚洲黄色视屏| 国产香蕉一区二区三区在线视频| 亚洲这里只有精品| 国产偷倩在线播放| 国产午夜亚洲精品羞羞网站| 亚洲va久久久噜噜噜| 日韩精品一区二区三| 成人羞羞网站入口免费| 欧美zozo另类异族| 免费看污黄网站| ****av在线网毛片| 中文字幕在线不卡一区二区三区| 在线这里只有精品| 日本高清一区| 国产富婆一级全黄大片| 亚洲精品动态| 欧美精品在线观看一区二区| 国产精品国产亚洲精品看不卡| eeuss影院在线播放| 免费在线成人| 美女视频黄免费的亚洲男人天堂| 精品无码一区二区三区| 亚洲91网站| 中文字幕亚洲电影| 久久精品日产第一区二区三区乱码 | 久久免费视频99| 精品产国自在拍| 亚洲国产精品一区二区三区| 亚州精品一二三区| 国产白浆在线免费观看| 国产高清在线观看免费不卡| 青青在线视频一区二区三区| 久久艹中文字幕| 一区二区三区一级片| 国产又爽又黄网站亚洲视频123| 999国产精品视频| 日韩电影中文字幕在线| 亚洲精品一二三四| 黄色日韩网站| 欧美午夜在线观看| 黄色网页免费在线观看| a黄色片在线观看| 精彩视频一区二区三区| 麻豆成人在线看| 我不卡一区二区| 自拍欧美一区| 精品亚洲精品福利线在观看| 国产综合内射日韩久| 国产一区二区三区免费观看在线 | 亚洲综合视频网站| 国产成人午夜性a一级毛片| 动漫精品一区二区| 日韩片电影在线免费观看| 日韩一级片免费看| www.欧美.com| 精品亚洲第一| 婷婷婷国产在线视频| 97久久精品人人做人人爽50路| 国产精品国产一区二区| 亚洲第一页综合| 国产99久久久精品| 国产伦精品一区二区三区| 成人午夜精品福利免费| caoporm超碰国产精品| 国产综合18久久久久久| 日本福利在线观看| 国产欧美一区二区精品仙草咪| 日产精品高清视频免费| 成年人在线看| 亚洲日本青草视频在线怡红院 | 性久久久久久久久久久| 精品网站aaa| 亚洲女同性videos| 国产欧美小视频| 中文字幕在线播| 成人涩涩视频| 欧美精品第一页| 一级黄色免费毛片| 大奶一区二区三区| 国产视频精品xxxx| 亚洲一二三四视频| 午夜欧美视频| 欧美一级bbbbb性bbbb喷潮片| 成年人视频免费| 国产探花在线精品| 日韩专区中文字幕| 亚洲调教欧美在线| 九九精品久久| 啊v视频在线一区二区三区| 欧美三级小视频| 成人av二区| 欧美精品亚州精品| 日韩精品1区2区| 麻豆成人综合网| 国产精品国产精品国产专区蜜臀ah | 色多多视频在线观看| 亚洲精品高清视频在线观看| 青青草原成人网| 欧美日韩卡一| 亚洲精品videossex少妇| www.黄色在线| 狠狠干成人综合网| 国产精品久久久精品| 丰满人妻一区二区三区无码av | 黄瓜视频污在线观看| 99久久精品费精品国产| 97视频免费在线观看| 中文字幕男人天堂| 99久久久久久| 9l视频自拍9l视频自拍| 午夜欧美巨大性欧美巨大| 日韩视频免费直播| 一本色道久久亚洲综合精品蜜桃 | 在线成人av网站| 人妻激情偷乱频一区二区三区| 成人高清电影网站| 欧美在线观看视频在线| 久久视频国产精品免费视频在线| 久久久久无码国产精品| 蜜桃av噜噜一区| 久久久影院一区二区三区| 99久久精品免费观看国产| 欧洲一区二区av| 99久久伊人| 亚洲综合另类小说| 亚洲一级免费观看| 欧美女优在线视频| 77777亚洲午夜久久多人| 国产日韩精品suv| 国产欧美一区视频| 日本精品www| 国产一区二区三区不卡av| xvideos亚洲| 最好看的日本字幕mv视频大全| heyzo一本久久综合| 欧美人与动牲交xxxxbbbb| 男人天堂网在线观看| 亚洲视频在线观看一区| 一级在线免费视频| 国产成人手机高清在线观看网站| 午夜精品久久久久久99热软件| 99精品国产99久久久久久97| 国产精品毛片高清在线完整版| 丝袜美腿玉足3d专区一区| 手机在线观看av| 精品福利av导航| 国产无码精品久久久| 国产91色综合久久免费分享| 国产精品日韩三级| 超碰成人97| 精品视频在线一区二区| 日本一区二区三区四区在线视频| 日韩国产欧美亚洲| 欧美电影在线观看免费| 国内外成人免费激情在线视频网站 | 精品黄色一级片| 日本亚洲欧洲色α| 国产永久免费高清在线观看 | 精品二区视频| 精品久久久久久久人人人人传媒| 国产噜噜噜噜噜久久久久久久久 | 亚欧视频在线观看| www.欧美亚洲| 成人三级视频在线播放| 国产免费av一区二区三区| 国产91色在线| 男人的天堂在线视频免费观看 | 亚洲一级黄色av| 欧美精品色视频| 影音先锋日韩在线| 亚洲一区二区少妇| 18在线观看的| 亚洲国产欧美在线成人app| 一区二区三区视频免费看| xnxx国产精品| 午夜精品福利在线视频| 日本亚洲欧美天堂免费| 一区二区三区四区不卡| 国产日韩欧美中文在线| 欧美丰满少妇xxxxx做受| 手机在线精品视频| 一本大道av伊人久久综合| 国产精品久久久久久户外露出| 国产一级大片免费看| 亚洲日本va| 在线播放日韩导航| 91杏吧porn蝌蚪| 不卡的av中国片| 日本成人在线免费视频| 久久久精品久久久久久96| 国产传媒一区二区| 国产精品美女免费看| ,亚洲人成毛片在线播放| 亚洲免费毛片网站| 久久久久9999| 麻豆精品视频在线观看| 日韩专区第三页| 99re8这里有精品热视频免费| 国产精品亚洲午夜一区二区三区| 欧美性爽视频| 日韩人在线观看| 成人小视频免费看| 丰满白嫩尤物一区二区| 久久精品视频91| 欧美另类专区| 91精品福利视频| 欧美a在线播放| a在线欧美一区| 日韩在线一区视频| 亚洲精品你懂的| 亚洲欧洲日韩综合二区| 在线播放一区二区精品视频| 国产va免费精品高清在线观看| av网站在线看| 国产调教视频一区| 亚洲精品日韩在线观看| 久久三级中文| 日韩精品一区二区三区视频在线观看| 日韩在线视频免费播放| 日韩美女啊v在线免费观看| 日本japanese极品少妇| 国产精品一区三区| 天天色综合社区| 久久欧美肥婆一二区| 国产亚洲黄色片| 重囗味另类老妇506070| 亚洲春色综合另类校园电影| 亚欧日韩另类中文欧美| 国产aⅴ精品一区二区三区黄| 四虎国产精品免费久久| 国产精品久久久久福利| 亚洲天堂av影院| 欧美刺激午夜性久久久久久久| 69视频免费看| 福利视频第一区| 免费毛片一区二区三区| 亚洲一区二区高清| 日韩女优一区二区| ●精品国产综合乱码久久久久| 精品人妻无码一区| 久久亚洲影视婷婷| 少妇高清精品毛片在线视频| 欧美午夜精品| 91av在线免费观看| 男人舔女人下面高潮视频| 午夜影院欧美| 欧美精品一区二区性色a+v| 欧美hd在线| 黄瓜视频免费观看在线观看www| 日韩精品免费一区二区三区| 亚洲色图自拍| 久久久国产精品| 51xx午夜影福利| 成人性生交大片免费看96| 99在线看视频| 97精品久久| 国产在线视频欧美一区二区三区| 欧美深夜视频| 青青影院一区二区三区四区| 经典一区二区| 夜夜春亚洲嫩草影视日日摸夜夜添夜| 青青一区二区三区| 黄色高清视频网站| 欧美性久久久| 国产深夜男女无套内射| 久久婷婷亚洲| 日本黄色福利视频| 国产成人在线视频免费播放| 亚洲国产精品第一页| 99精品视频在线观看免费| 黄色正能量网站| 中文字幕第一区| 一区二区免费在线观看视频| 91蜜桃免费观看视频| 国产伦理片在线观看| 中文字幕一区二区三区蜜月 | 国产精品成人3p一区二区三区| 国产中文字幕91| 国产网站在线| 欧美中文字幕在线观看| 激情久久一区二区| 成人自拍爱视频| 婷婷精品视频| 免费久久久久久| 在线亚洲伦理| 日本高清久久久| 99精品视频在线观看免费| 日韩精品电影一区二区三区| 亚洲一区二区在线观看视频| 激情视频网站在线观看| 欧美高清性hdvideosex| 五月天激情婷婷| 日韩小视频网址| 精精国产xxxx视频在线野外 | 中文字幕免费高清网站| 91麻豆精品国产综合久久久久久| 人妻少妇精品无码专区| 中文字幕一区二区精品| 涩涩视频在线观看免费| 色婷婷综合成人| 九九在线视频| 亚洲理论电影片| 国产99在线播放| 日韩在线观看| 黄色动漫网站入口| 国产福利一区二区三区视频 | 久久精品国产清自在天天线| 国产在线精彩视频| 91在线直播亚洲| 成人在线一区| 国产福利视频在线播放| 东方aⅴ免费观看久久av| 少妇视频在线播放| 精品国产91久久久| www.久久色| 久久激情五月丁香伊人| 免费欧美电影| 免费一区二区三区在在线视频| 欧美福利专区| 亚洲欧美天堂在线| 国产欧美日韩精品一区| 日本天堂网在线| 欧美手机在线观看| 欧美福利电影在线观看| 国产精品免费成人| 成人黄色网址在线观看| 加勒比婷婷色综合久久| 欧美日产国产精品| 成人影院免费观看| 国产97在线观看| 亚洲春色h网| 中国丰满人妻videoshd| 99久久99精品久久久久久| 久久黄色免费视频| 欧美成人福利视频| 在线观看操人| 亚洲综合成人婷婷小说| 91精品国产91久久久久久密臀| 亚洲欧美偷拍另类| 国产精品久久久久天堂| 在线视频播放大全| 日韩中文字幕第一页| 欧美一区二区三区婷婷| 亚洲综合五月天| 激情综合网av| 全网免费在线播放视频入口| 91.麻豆视频| 亚洲区欧洲区| 久久国产一区二区三区| 色综合视频一区二区三区日韩 | 亚洲国产日韩在线一区模特| 国产精品第九页| 欧美不卡一区二区| heyzo在线欧美播放| 精品日本一区二区| 久久亚洲风情| 国产传媒视频在线 | 国产精品久久久久久免费播放| 久久精彩免费视频| 日韩国产在线不卡视频| 福利视频一二区| 91年精品国产| 精品乱码一区内射人妻无码| www.久久撸.com| 一区二区网站| 看av免费毛片手机播放| 国产欧美一区二区精品婷婷| 91九色偷拍| 91精品蜜臀一区二区三区在线| 天天干天天曰天天操| 亚洲一区在线视频| 天堂资源最新在线| 国产精品视频精品视频| 欧美在线三级| 人妻在线日韩免费视频| 色婷婷久久久综合中文字幕| 香蕉视频免费在线播放| 亚洲综合国产精品| 国产亚洲激情| 免费成人深夜蜜桃视频| 精品久久久久久久久久久久包黑料| 99色在线观看| 亚洲精品8mav| 成人在线一区二区三区| 黄色污污网站在线观看| 久久久精品视频在线观看| 好吊妞国产欧美日韩免费观看网站| 黄色高清无遮挡| 亚洲精品一卡二卡| 激情小说 在线视频| 2022国产精品| 久久资源在线| 精品午夜福利视频| 中文字幕9999|