国产秋霞理论久久久电影-婷婷色九月综合激情丁香-欧美在线观看乱妇视频-精品国avA久久久久久久-国产乱码精品一区二区三区亚洲人-欧美熟妇一区二区三区蜜桃视频

ES+Redis+MySQL的高可用架構(gòu)設(shè)計(jì)

共 12616字,需瀏覽 26分鐘

 ·

2023-06-01 20:32

f4e396cd06fd6996ee7bffb22a817ae7.webp

d90aa4bc4e796341786ab6a8feacd9f8.webp

背景

48172f4b7cb9ac829ef5fb0714bb8ae5.webp

會(huì)員系統(tǒng)是一種基礎(chǔ)系統(tǒng),跟公司所有業(yè)務(wù)線(xiàn)的下單主流程密切相關(guān)。如果會(huì)員系統(tǒng)出故障,會(huì)導(dǎo)致用戶(hù)無(wú)法下單,影響范圍是全公司所有業(yè)務(wù)線(xiàn)。所以,會(huì)員系統(tǒng)必須保證高性能、高可用,提供穩(wěn)定、高效的基礎(chǔ)服務(wù)。


隨著同程和藝龍兩家公司的合并,越來(lái)越多的系統(tǒng)需要打通同程 APP、藝龍 APP、同程微信小程序、藝龍微信小程序等多平臺(tái)會(huì)員體系。


例如微信小程序的交叉營(yíng)銷(xiāo),用戶(hù)買(mǎi)了一張火車(chē)票,此時(shí)想給他發(fā)酒店紅包,這就需要查詢(xún)?cè)撚脩?hù)的統(tǒng)一會(huì)員關(guān)系。


因?yàn)榛疖?chē)票用的是同程會(huì)員體系,酒店用的是藝龍會(huì)員體系,只有查到對(duì)應(yīng)的藝龍會(huì)員卡號(hào)后,才能將紅包掛載到該會(huì)員賬號(hào)。


除了上述講的交叉營(yíng)銷(xiāo),還有許多場(chǎng)景需要查詢(xún)統(tǒng)一會(huì)員關(guān)系,例如訂單中心、會(huì)員等級(jí)、里程、紅包、常旅、實(shí)名,以及各類(lèi)營(yíng)銷(xiāo)活動(dòng)等等。


所以,會(huì)員系統(tǒng)的請(qǐng)求量越來(lái)越大,并發(fā)量越來(lái)越高,今年清明小長(zhǎng)假的秒并發(fā) tps 甚至超過(guò) 2 萬(wàn)多。


在如此大流量的沖擊下,會(huì)員系統(tǒng)是如何做到高性能和高可用的呢?這就是本文著重要講述的內(nèi)容。


dec9e5c9a1c4cb6a91a673a5b546ddb8.webp

ES 高可用方案

11cb1b2042e28b98024a452d70ebd4d8.webp

| ES 雙中心主備集群架構(gòu)

同程和藝龍兩家公司融合后,全平臺(tái)所有體系的會(huì)員總量是十多億。在這么大的數(shù)據(jù)體量下,業(yè)務(wù)線(xiàn)的查詢(xún)維度也比較復(fù)雜。


有的業(yè)務(wù)線(xiàn)基于手機(jī)號(hào),有的基于微信 unionid,也有的基于藝龍卡號(hào)等查詢(xún)會(huì)員信息。


這么大的數(shù)據(jù)量,又有這么多的查詢(xún)維度,基于此,我們選擇 ES 用來(lái)存儲(chǔ)統(tǒng)一會(huì)員關(guān)系。ES 集群在整個(gè)會(huì)員系統(tǒng)架構(gòu)中非常重要,那么如何保證 ES 的高可用呢?


首先我們知道,ES 集群本身就是保證高可用的,如下圖所示: beeccd6ed1b1ec406bd3e1a5d3a3e04e.webp

當(dāng) ES 集群有一個(gè)節(jié)點(diǎn)宕機(jī)了,會(huì)將其他節(jié)點(diǎn)對(duì)應(yīng)的 Replica Shard 升級(jí)為 Primary Shard,繼續(xù)提供服務(wù)。


但即使是這樣,還遠(yuǎn)遠(yuǎn)不夠。例如 ES 集群都部署在機(jī)房 A,現(xiàn)在機(jī)房 A 突然斷電了,怎么辦?


例如服務(wù)器硬件故障,ES 集群大部分機(jī)器宕機(jī)了,怎么辦?或者突然有個(gè)非常熱門(mén)的搶購(gòu)秒殺活動(dòng),帶來(lái)了一波非常大的流量,直接把 ES 集群打死了,怎么辦? 面對(duì)這些情況,讓運(yùn)維兄弟沖到機(jī)房去解決?


這個(gè)非常不現(xiàn)實(shí),因?yàn)闀?huì)員系統(tǒng)直接影響全公司所有業(yè)務(wù)線(xiàn)的下單主流程,故障恢復(fù)的時(shí) 間必須非常短,如果需要運(yùn)維兄弟人工介入,那這個(gè)時(shí)間就太長(zhǎng)了,是絕對(duì)不能容忍的。


那 ES 的高可用如何做呢? 我們的方案是 ES 雙中心主備集群架構(gòu)。 8bbc4a37dfd162766610e01b2cf0aaea.webp

我們有兩個(gè)機(jī)房,分別是機(jī)房 A 和機(jī)房 B。我們把 ES 主集群部署在機(jī)房 A,把 ES 備集群部署在機(jī)房 B。 會(huì) 員系統(tǒng)的讀寫(xiě) 都在? ES 主集群,通過(guò)? MQ 將數(shù)據(jù)同步到? ES? 集群。


此時(shí),如果 ES 主集群崩了,通過(guò)統(tǒng)一配置,將會(huì)員系統(tǒng)的讀寫(xiě)切到機(jī)房 B 的 ES 備集群上,這樣即使 ES 主集群掛了,也能在很短的時(shí)間內(nèi)實(shí)現(xiàn)故障轉(zhuǎn)移,確保會(huì)員系統(tǒng)的穩(wěn)定運(yùn)行。


最后,等 ES 主集群故障恢復(fù)后,打開(kāi)開(kāi)關(guān),將故障期間的數(shù)據(jù)同步到 ES 主集群,等數(shù)據(jù)同步一致后,再將會(huì)員系統(tǒng)的讀寫(xiě)切到 ES 主集群。


| ES 流量隔離三集群架構(gòu)

雙中心 ES 主備集群做到這一步,感覺(jué)應(yīng)該沒(méi)啥大問(wèn)題了,但去年的一次恐怖流量沖擊讓我們改變了想法。


那是一個(gè)節(jié)假日,某個(gè)業(yè)務(wù)上線(xiàn)了一個(gè)營(yíng)銷(xiāo)活動(dòng),在用戶(hù)的一次請(qǐng)求中,循環(huán) 10 多次調(diào)用了會(huì)員系統(tǒng),導(dǎo)致會(huì)員系統(tǒng)的 tps 暴漲,差點(diǎn)把 ES 集群打爆。


這件事讓我們后怕不已,它讓我們意識(shí)到,一定要對(duì)調(diào)用方進(jìn)行優(yōu)先級(jí)分類(lèi),實(shí)施更精細(xì)的隔離、熔斷、降級(jí)、限流策略。


首先,我們梳理了所有調(diào)用方,分出兩大類(lèi)請(qǐng)求類(lèi)型:

  • 第一類(lèi)是跟用戶(hù)的下單主流程密切相關(guān)的請(qǐng)求,這類(lèi)請(qǐng)求非常重要,應(yīng)該高優(yōu)先級(jí)保障。

  • 第二類(lèi)是營(yíng)銷(xiāo)活動(dòng)相關(guān)的,這類(lèi)請(qǐng)求有個(gè)特點(diǎn),他們的請(qǐng)求量很大,tps 很高,但不影響下單主流程。


基于此,我們又構(gòu)建了一個(gè) ES 集群,專(zhuān)門(mén)用來(lái)應(yīng)對(duì)高 tps 的營(yíng)銷(xiāo)秒殺類(lèi)請(qǐng)求,這樣就跟 ES 主集群隔離開(kāi)來(lái),不會(huì)因?yàn)槟硞€(gè)營(yíng)銷(xiāo)活動(dòng)的流量沖擊而影響用戶(hù)的下單主流程。


如下圖所示: 851875bc4667f84608e8b2b03b1064b4.webp

| ES 集群深度優(yōu)化提升

講完了 ES 的雙中心主備集群高可用架構(gòu),接下來(lái)我們深入講解一下 ES 主集群的優(yōu)化工作。


有一段時(shí)間,我們特別痛苦,就是每到飯點(diǎn),ES 集群就開(kāi)始報(bào)警,搞得每次吃飯都心慌慌的,生怕 ES 集群一個(gè)扛不住,就全公司炸鍋了。


那為什么一到飯點(diǎn)就報(bào)警呢?因?yàn)榱髁勘容^大, 導(dǎo)致 ES 線(xiàn)程數(shù)飆高,cpu 直往上竄,查詢(xún)耗時(shí)增加,并傳導(dǎo)給所有調(diào)用方,導(dǎo)致更大范圍的延時(shí)。那么如何解決這個(gè)問(wèn)題呢?


通過(guò)深入 ES 集群,我們發(fā)現(xiàn)了以下幾個(gè)問(wèn)題:?

  • ES 負(fù)載不合理,熱點(diǎn)問(wèn)題嚴(yán)重。 ES 主集群一共有幾十個(gè)節(jié)點(diǎn),有的節(jié)點(diǎn)上部署的 shard 數(shù)偏多,有的節(jié)點(diǎn)部署的 shard 數(shù)很少,導(dǎo)致某些服務(wù)器的負(fù)載很高,每到流量高峰期,就經(jīng)常預(yù)警。

  • ES 線(xiàn)程池的大小設(shè)置得太高,導(dǎo)致 cpu 飆高。 我們知道,設(shè)置 ES 的 threadpool,一般將線(xiàn)程數(shù)設(shè)置為服務(wù)器的 cpu 核數(shù),即使 ES 的查詢(xún)壓力很大,需要增加線(xiàn)程數(shù),那最好也不要超過(guò)“cpu core * 3 / 2 + 1”。如果設(shè)置的線(xiàn)程數(shù)過(guò)多,會(huì)導(dǎo)致 cpu 在多個(gè)線(xiàn)程上下文之間頻繁來(lái)回切換,浪費(fèi)大量 cpu 資源。

  • shard 分配的內(nèi)存太大,100g,導(dǎo)致查詢(xún)變慢。 我們知道,ES 的索引要合理分配 shard 數(shù),要控制一個(gè) shard 的內(nèi)存大小在 50g 以?xún)?nèi)。如果一個(gè) shard 分配的內(nèi)存過(guò)大,會(huì)導(dǎo)致查詢(xún)變慢,耗時(shí)增加,嚴(yán)重拖累性能。

  • string 類(lèi)型的字段設(shè)置了雙字段,既是 text,又是 keyword,導(dǎo)致存儲(chǔ)容量增大了一倍。 會(huì)員信息的查詢(xún)不需要關(guān)聯(lián)度打分,直接根據(jù) keyword 查詢(xún)就行,所以完全可以將 text 字段去掉,這樣就能節(jié)省很大一部分存儲(chǔ)空間,提升性能。

  • ES 查詢(xún),使用 filter,不使用 query。 因?yàn)?query 會(huì)對(duì)搜索結(jié)果進(jìn)行相關(guān)度算分,比較耗 cpu,而會(huì)員信息的查詢(xún)是不需要算分的,這部分的性能損耗完全可以避免。

  • 節(jié)約 ES 算力, 將 ES 的搜索結(jié)果排序放在會(huì)員系統(tǒng)的 jvm 內(nèi)存中進(jìn)行。

  • 增加 routing key。 我們知道,一次 ES 查詢(xún),會(huì)將請(qǐng)求分發(fā)給所有 shard,等所有shard返回結(jié)果后再聚合數(shù)據(jù),最后將結(jié)果返回給調(diào)用方。如果我們事先已經(jīng)知道數(shù)據(jù)分布在哪些 shard 上,那么就可以減少大量不必要的請(qǐng)求,提升查詢(xún)性能。


經(jīng)過(guò)以上優(yōu)化,成果非常顯著,ES 集群的 cpu 大幅下降,查詢(xún)性能大幅提升。ES 集群的 cpu 使用率:?

6b5af0170832acfb59b9bff556b8c1b9.webp會(huì)員系統(tǒng)的接口耗時(shí): 8db303ae2815ab7eeb76fe6bf702a67f.webpdec9e5c9a1c4cb6a91a673a5b546ddb8.webp

會(huì)員 Redis 緩存方案

11cb1b2042e28b98024a452d70ebd4d8.webp

一直以來(lái),會(huì)員系統(tǒng)是不做緩存的,原因主要有兩個(gè):

  • 第一個(gè),前面講的 ES 集群性能很好,秒并發(fā) 3 萬(wàn)多,99 線(xiàn)耗時(shí) 5 毫秒左右,已經(jīng)足夠應(yīng)付各種棘手的場(chǎng)景。

  • 第二個(gè),有的業(yè)務(wù)對(duì)會(huì)員的綁定關(guān)系要求實(shí)時(shí)一致,而會(huì)員是一個(gè)發(fā)展了 10 多年的老系統(tǒng),是一個(gè)由好多接口、好多系統(tǒng)組成的分布式系統(tǒng)。


所以,只要有一個(gè)接口沒(méi)有考慮到位,沒(méi)有及時(shí)去更新緩存,就會(huì)導(dǎo)致臟數(shù)據(jù),進(jìn)而引發(fā)一系列的問(wèn)題。


例如:用戶(hù)在 APP 上看不到微信訂單、APP 和微信的會(huì)員等級(jí)、里程等沒(méi)合并、微信和 APP 無(wú)法交叉營(yíng)銷(xiāo)等等。


那后來(lái)為什么又要做緩存呢?是因?yàn)榻衲隀C(jī)票的盲盒活動(dòng),它帶來(lái)的瞬時(shí)并發(fā)太高了。雖然會(huì)員系統(tǒng)安然無(wú)恙,但還是有點(diǎn)心有余悸,穩(wěn)妥起見(jiàn),最終還是決定實(shí)施緩存方案。


| ES 近一秒延時(shí)導(dǎo)致的 Redis 緩存數(shù)據(jù)不一致問(wèn)題的解決方案

在做會(huì)員緩存方案的過(guò)程中,遇到一個(gè) ES 引發(fā)的問(wèn)題,該問(wèn)題會(huì)導(dǎo)致緩存數(shù)據(jù)的不一致。


我們知道,ES 操作數(shù)據(jù)是近實(shí)時(shí)的,往 ES 新增一個(gè) Document,此時(shí)立即去查,是查不到的,需要等待 1 秒后才能查詢(xún)到。


如下圖所示: 2dd6cb1bbb605f53c0ca53323611d8b0.webp

ES 的近實(shí)時(shí)機(jī)制為什么會(huì)導(dǎo)致 Redis 緩存數(shù)據(jù)不一致呢?具體來(lái)講,假設(shè)一個(gè)用戶(hù)注銷(xiāo)了自己的 APP 賬號(hào),此時(shí)需要更新 ES,刪除 APP 賬號(hào)和微信賬號(hào)的綁定關(guān)系。 而 ES 的數(shù)據(jù)更新是近實(shí)時(shí)的,也就是說(shuō),1 秒后你才能查詢(xún)到更新后的數(shù)據(jù)。


而就在這 1 秒內(nèi),有個(gè)請(qǐng)求來(lái)查詢(xún)?cè)撚脩?hù)的會(huì)員綁定關(guān)系,它先到 Redis 緩存中查,發(fā)現(xiàn)沒(méi)有,然后到 ES 查,查到了,但查到的是更新前的舊數(shù)據(jù)。


最后,該請(qǐng)求把查詢(xún)到的舊數(shù)據(jù)更新到 Redis 緩存并返回。 就這樣,1 秒后,ES 中該用戶(hù)的會(huì)員數(shù)據(jù)更新了,但 Redis 緩存的數(shù)據(jù)還是舊數(shù)據(jù),導(dǎo)致了 Redis 緩存跟 ES 的數(shù)據(jù)不一致。


如下圖所示: 39e3dac56abfc95b1a3d47b6d7c66a5a.webp

面對(duì)該問(wèn)題,如何解決呢?我們的思路是,在更新 ES 數(shù)據(jù)時(shí),加一個(gè) 2 秒的 Redis 分布式并發(fā)鎖,為了保證緩存數(shù)據(jù)的一致性,接著再刪除 Redis 中該會(huì)員的緩存數(shù)據(jù)。


如果此時(shí)有請(qǐng)求來(lái)查詢(xún)數(shù)據(jù),先獲取分布式鎖,發(fā)現(xiàn)該會(huì)員 ID 已經(jīng)上鎖了,說(shuō)明 ES 剛剛更新的數(shù)據(jù)尚未生效,那么此時(shí)查詢(xún)完數(shù)據(jù)后就不更新 Redis 緩存了,直接返回,這樣就避免了緩存數(shù)據(jù)的不一致問(wèn)題。


如下圖所示: 9f9514cde7e36f8545273dd247b68b53.webp

上述方案,乍一看似乎沒(méi)什么問(wèn)題了,但仔細(xì)分析,還是有可能導(dǎo)致緩存數(shù)據(jù)的不一致。


例如,在更新請(qǐng)求加分布式鎖之前,恰好有一個(gè)查詢(xún)請(qǐng)求獲取分布式鎖,而此時(shí)是沒(méi)有鎖的,所以它可以繼續(xù)更新緩存。


但就在他更新緩存之前,線(xiàn)程 block 了,此時(shí)更新請(qǐng)求來(lái)了,加了分布式鎖,并刪除了緩存。當(dāng)更新請(qǐng)求完成操作后,查詢(xún)請(qǐng)求的線(xiàn)程活過(guò)來(lái)了,此時(shí)它再執(zhí)行更新緩存,就把臟數(shù)據(jù)寫(xiě)到緩存中了。


發(fā)現(xiàn)沒(méi)有?主要的問(wèn)題癥結(jié)就在于“刪除緩存”和“更新緩存”發(fā)生了并發(fā)沖突,只要將它們互斥,就能解決問(wèn)題。


如下圖所示: fb8086880255cd3f4175db65419301c2.webp

實(shí)施了緩存方案后,經(jīng)統(tǒng)計(jì),緩存命中率 90%+,極大緩解了 ES 的壓力,會(huì)員系統(tǒng)整體性能得到了很大提升。


| Redis 雙中心多集群架構(gòu)

接下來(lái),我們看一下如何保障 Redis 集群的高可用。


如下圖所示:? 37101c3f5129b5eaaabaaa96557352b3.webp

關(guān)于 Redis 集群的高可用,我們采用了雙中心多集群的模式。在機(jī)房 A 和機(jī)房 B 各部署一套 Redis 集群。


更新緩存數(shù)據(jù)時(shí),雙寫(xiě),只有兩個(gè)機(jī)房的 Redis 集群都寫(xiě)成功了,才返回成功。查詢(xún)緩存數(shù)據(jù)時(shí),機(jī)房?jī)?nèi)就近查詢(xún),降低延時(shí)。這樣,即使機(jī)房 A 整體故障,機(jī)房 B 還能提供完整的會(huì)員服務(wù)。

dec9e5c9a1c4cb6a91a673a5b546ddb8.webp

高可用會(huì)員主庫(kù)方案

11cb1b2042e28b98024a452d70ebd4d8.webp

上述講到,全平臺(tái)會(huì)員的綁定關(guān)系數(shù)據(jù)存在 ES,而會(huì)員的注冊(cè)明細(xì)數(shù)據(jù)存在關(guān)系型數(shù)據(jù)庫(kù)。


最早,會(huì)員使用的數(shù)據(jù)庫(kù)是 SqlServer,直到有一天,DBA 找到我們說(shuō),單臺(tái) SqlServer 數(shù)據(jù)庫(kù)已經(jīng)存儲(chǔ)了十多億的會(huì)員數(shù)據(jù),服務(wù)器已達(dá)到物理極限,不能再擴(kuò)展了。 按照現(xiàn)在的增長(zhǎng)趨勢(shì),過(guò)不了多久,整個(gè) SqlServer 數(shù)據(jù)庫(kù)就崩了。


你想想,那是一種什么樣的災(zāi)難場(chǎng)景: 會(huì)員數(shù)據(jù)庫(kù)崩了,會(huì)員系統(tǒng)就崩了; 會(huì)員系統(tǒng)崩了,全公司所有業(yè)務(wù)線(xiàn)就崩了。 想想就不寒而栗,酸爽無(wú)比,為此我們立刻開(kāi)啟了遷移 DB 的工作。

| MySQL 雙中心 Partition 集群方案

經(jīng)過(guò)調(diào)研,我們選擇了雙中心分庫(kù)分表的 MySQL 集群方案,如下圖所示: 8d602ea8b7f2746e3582e0f235522477.webp

會(huì)員一共有十多億的數(shù)據(jù),我們把會(huì)員主庫(kù)分了 1000 多個(gè)分片,平分到每個(gè)分片大概百萬(wàn)的量級(jí),足夠使用了。


MySQL 集群采用 1 主 3 從的架構(gòu),主庫(kù)放在機(jī)房 A,從庫(kù)放在機(jī)房 B,兩個(gè)機(jī)房之間通過(guò)專(zhuān)線(xiàn)同步數(shù)據(jù),延遲在 1 毫秒內(nèi)。


會(huì)員系統(tǒng)通過(guò) DBRoute 讀寫(xiě)數(shù)據(jù),寫(xiě)數(shù)據(jù)都路由到 master 節(jié)點(diǎn)所在的機(jī)房 A,讀數(shù)據(jù)都路由到本地機(jī)房,就近訪(fǎng)問(wèn),減少網(wǎng)絡(luò)延遲。


這樣,采用雙中心的 MySQL 集群架構(gòu),極大提高了可用性,即使機(jī)房 A 整體都崩了,還可以將機(jī)房 B 的 Slave 升級(jí)為 Master,繼續(xù)提供服務(wù)。


雙中心 MySQL 集群搭建好后,我們進(jìn)行了壓測(cè),測(cè)試下來(lái),秒并發(fā)能達(dá)到 2 萬(wàn)多,平均耗時(shí)在 10 毫秒內(nèi),性能達(dá)標(biāo)。


| 會(huì)員主庫(kù)平滑遷移方案

接下來(lái)的工作,就是把會(huì)員系統(tǒng)的底層存儲(chǔ)從 SqlServer 切到 MySQL 上,這是個(gè)風(fēng)險(xiǎn)極高的工作。


主要有以下幾個(gè)難點(diǎn):

  • 會(huì)員系統(tǒng)是一刻都不能停機(jī)的,要在不停機(jī)的情況下完成 SqlServer 到 MySQL 的切換,就像是在給高速行駛的汽車(chē)換輪子。

  • 會(huì)員系統(tǒng)是由很多個(gè)系統(tǒng)和接口組成的,畢竟發(fā)展了 10 多年,由于歷史原因,遺留了大量老接口,邏輯錯(cuò)綜復(fù)雜。這么多系統(tǒng),必須一個(gè)不落的全部梳理清楚,DAL 層代碼必須重寫(xiě),而且不能出任何問(wèn)題,否則將是災(zāi)難性的。

  • 數(shù)據(jù)的遷移要做到無(wú)縫遷移,不僅是存量 10 多億數(shù)據(jù)的遷移,實(shí)時(shí)產(chǎn)生的數(shù)據(jù)也要無(wú)縫同步到 MySQL。另外,除了要保障數(shù)據(jù)同步的實(shí)時(shí)性,還要保證數(shù)據(jù)的正確性,以及 SqlServer 和 MySQL 數(shù)據(jù)的一致性。


基于以上痛點(diǎn),我們?cè)O(shè)計(jì)了“全量同步、增量同步、實(shí)時(shí)流量灰度切換”的技術(shù)方案。


首先,為了保證數(shù)據(jù)的無(wú)縫切換,采用實(shí)時(shí)雙寫(xiě)的方案。因?yàn)闃I(yè)務(wù)邏輯的復(fù)雜,以及 SqlServer 和 MySQL 的技術(shù)差異性,在雙寫(xiě) MySQL 的過(guò)程中,不一定會(huì)寫(xiě)成功,而一旦寫(xiě)失敗,就會(huì)導(dǎo)致 SqlServer 和 MySQL 的數(shù)據(jù)不一致,這是絕不允許的。


所以,我們采取的策略是,在試運(yùn)行期間,主寫(xiě) SqlServer,然后通過(guò)線(xiàn)程池異步寫(xiě) MySQL,如果寫(xiě)失敗了,重試三次,如果依然失敗,則記日志,然后人工排查原因,解決后,繼續(xù)雙寫(xiě),直到運(yùn)行一段時(shí)間,沒(méi)有雙寫(xiě)失敗的情況。


通過(guò)上述策略,可以確保在絕大部分情況下,雙寫(xiě)操作的正確性和穩(wěn)定性,即使在試運(yùn)行期間出現(xiàn)了 SqlServer 和 MySQL 的數(shù)據(jù)不一致的情況,也可以基于 SqlServer 再次全量構(gòu)建出 MySQL 的數(shù)據(jù)。


因?yàn)槲覀冊(cè)谠O(shè)計(jì)雙寫(xiě)策略時(shí),會(huì)確保 SqlServer 一定能寫(xiě)成功,也就是說(shuō),SqlServer 中的數(shù)據(jù)是全量最完整、最正確的。


如下圖所示: 9b18f6ce11963587979c1494bb2c9114.webp

?講完了雙寫(xiě),接下來(lái)我們看一下“讀數(shù)據(jù)”如何灰度。整體思路是,通過(guò) A/B 平臺(tái)逐步灰度流量,剛開(kāi)始 100% 的流量讀取 SqlServer 數(shù)據(jù)庫(kù),然后逐步切流量讀取 MySQL 數(shù)據(jù)庫(kù),先 1%,如果沒(méi)有問(wèn)題,再逐步放流量,最終 100% 的流量都走 MySQL數(shù)據(jù)庫(kù)。


在逐步灰度流量的過(guò)程中,需要有驗(yàn)證機(jī)制,只有驗(yàn)證沒(méi)問(wèn)題了,才能進(jìn)一步放大流量。


那么這個(gè)驗(yàn)證機(jī)制如何實(shí)施呢?方案是,在一次查詢(xún)請(qǐng)求里,通過(guò)異步線(xiàn)程,比較 SqlServer 和 MySQL 的查詢(xún)結(jié)果是否一致,如果不一致,記日志,再人工檢查不一致的原因,直到徹底解決不一致的問(wèn)題后,再逐步灰度流量。


如下圖所示: b9ebe0b18d377a691ecdd895192472e0.webp所以,整體的實(shí)施流程如下: 6ae0a6785c95e4e575f0701d9db95ca1.webp

首先,在一個(gè)夜黑風(fēng)高的深夜,流量最小的時(shí)候,完成 SqlServer 到 MySQL 數(shù)據(jù)庫(kù)的全量數(shù)據(jù)同步。


接著,開(kāi)啟雙寫(xiě),此時(shí),如果有用戶(hù)注冊(cè),就會(huì)實(shí)時(shí)雙寫(xiě)到兩個(gè)數(shù)據(jù)庫(kù)。那么,在全量同步和實(shí)時(shí)雙寫(xiě)開(kāi)啟之間,兩個(gè)數(shù)據(jù)庫(kù)還相差這段時(shí)間的數(shù)據(jù),所以需要再次增量同步,把數(shù)據(jù)補(bǔ)充完整,以防數(shù)據(jù)的不一致。


剩下的時(shí)間,就是各種日志監(jiān)控,看雙寫(xiě)是否有問(wèn)題,看數(shù)據(jù)比對(duì)是否一致等等。


這段時(shí)間是耗時(shí)最長(zhǎng)的,也是最容易發(fā)生問(wèn)題的,如果有的問(wèn)題比較嚴(yán)重,導(dǎo)致數(shù)據(jù)不一致了,就需要從頭再來(lái),再次基于 SqlServer 全量構(gòu)建 MySQL 數(shù)據(jù)庫(kù),然后重新灰度流量。


直到最后,100% 的流量全部灰度到 MySQL,此時(shí)就大功告成了,下線(xiàn)灰度邏輯,所有讀寫(xiě)都切到 MySQL 集群。


| MySQL 和 ES 主備集群方案

做到這一步,感覺(jué)會(huì)員主庫(kù)應(yīng)該沒(méi)問(wèn)題了,可 dal 組件的一次嚴(yán)重故障改變了我們的想法。


那次故障很恐怖,公司很多應(yīng)用連接不上數(shù)據(jù)庫(kù)了,創(chuàng)單量直線(xiàn)往下掉,這讓我們意識(shí)到,即使數(shù)據(jù)庫(kù)是好的,但 dal 組件異常,依然能讓會(huì)員系統(tǒng)掛掉。


所以,我們?cè)俅萎悩?gòu)了會(huì)員主庫(kù)的數(shù)據(jù)源,雙寫(xiě)數(shù)據(jù)到 ES,如下所示: 5e54f43c71948823fa654b63db6c468c.webp

如果 dal 組件故障或 MySQL 數(shù)據(jù)庫(kù)掛了,可以把讀寫(xiě)切到 ES,等 MySQL 恢復(fù)了,再把數(shù)據(jù)同步到 MySQL,最后把讀寫(xiě)再切回到 MySQL 數(shù)據(jù)庫(kù)。


如下圖所示:

54f8f65d8a1dfea10591c07be2530cad.webp


dec9e5c9a1c4cb6a91a673a5b546ddb8.webp

異常會(huì)員關(guān)系治理

11cb1b2042e28b98024a452d70ebd4d8.webp

會(huì)員系統(tǒng)不僅僅要保證系統(tǒng)的穩(wěn)定和高可用,數(shù)據(jù)的精準(zhǔn)和正確也同樣重要。


舉個(gè)例子,一個(gè)分布式并發(fā)故障,導(dǎo)致一名用戶(hù)的 APP 賬戶(hù)綁定了別人的微信小程序賬戶(hù),這將會(huì)帶來(lái)非常惡劣的影響。


首先,一旦這兩個(gè)賬號(hào)綁定了,那么這兩個(gè)用戶(hù)下的酒店、機(jī)票、火車(chē)票訂單是互相可以看到的。


你想想,別人能看到你訂的酒店訂單,你火不火,會(huì)不會(huì)投訴?除了能看到別人的訂單,你還能操作訂單。


例如,一個(gè)用戶(hù)在 APP 的訂單中心,看到了別人訂的機(jī)票訂單,他覺(jué)得不是自己的訂單,就把訂單取消了。


這將會(huì)帶來(lái)非常嚴(yán)重的客訴,大家知道,機(jī)票退訂費(fèi)用是挺高的,這不僅影響了該用戶(hù)的正常出行,還導(dǎo)致了比較大的經(jīng)濟(jì)損失,非常糟糕。


針對(duì)這些異常會(huì)員賬號(hào),我們進(jìn)行了詳細(xì)的梳理,通過(guò)非常復(fù)雜燒腦的邏輯識(shí)別出這些賬號(hào),并對(duì)會(huì)員接口進(jìn)行了深度優(yōu)化治理,在代碼邏輯層堵住了相關(guān)漏洞,完成了異常會(huì)員的治理工作。


如下圖所示:

2aefda4b9d72de65d0809a04f4b762ae.webp

dec9e5c9a1c4cb6a91a673a5b546ddb8.webp

展望:更精細(xì)化的流控和降級(jí)策略

11cb1b2042e28b98024a452d70ebd4d8.webp

任何一個(gè)系統(tǒng),都不能保證百分之一百不出問(wèn)題,所以我們要有面向失敗的設(shè)計(jì),那就是更精細(xì)化的流控和降級(jí)策略。

| 更精細(xì)化的流控策略

熱點(diǎn)控制。針對(duì)黑產(chǎn)刷單的場(chǎng)景,同一個(gè)會(huì)員 id 會(huì)有大量重復(fù)的請(qǐng)求,形成熱點(diǎn)賬號(hào),當(dāng)這些賬號(hào)的訪(fǎng)問(wèn)超過(guò)設(shè)定閾值時(shí),實(shí)施限流策略。


基于調(diào)用賬號(hào)的流控規(guī)則。這個(gè)策略主要是防止調(diào)用方的代碼 bug 導(dǎo)致的大流量。例如,調(diào)用方在一次用戶(hù)請(qǐng)求中,循環(huán)很多次來(lái)調(diào)用會(huì)員接口,導(dǎo)致會(huì)員系統(tǒng)流量暴增很多倍。所以,要針對(duì)每個(gè)調(diào)用賬號(hào)設(shè)置流控規(guī)則,當(dāng)超過(guò)閾值時(shí),實(shí)施限流策略。


全局流控規(guī)則。 我們會(huì)員系統(tǒng)能抗下 tps 3 萬(wàn)多的秒并發(fā)請(qǐng)求量,如果此時(shí),有個(gè)很恐怖的流量打過(guò)來(lái),tps 高達(dá) 10 萬(wàn),與其讓這波流量把會(huì)員數(shù)據(jù)庫(kù)、ES 全部打死,還不如把超過(guò)會(huì)員系統(tǒng)承受范圍之外的流量快速失敗,至少 tps 3 萬(wàn)內(nèi)的會(huì)員請(qǐng)求能正常響應(yīng),不會(huì)讓整個(gè)會(huì)員系統(tǒng)全部崩潰。

4623e7b4dc3a4af3b5901de1891004a9.webp


| 更精細(xì)化的降級(jí)策略

基于平均響應(yīng)時(shí)間的降級(jí)。 會(huì)員接口也有依賴(lài)其他接口,當(dāng)調(diào)用其他接口的平均響應(yīng)時(shí)間超過(guò)閾值,進(jìn)入準(zhǔn)降級(jí)狀態(tài)。


如果接下來(lái) 1s 內(nèi)進(jìn)入的請(qǐng)求,它們的平均響應(yīng)時(shí)間都持續(xù)超過(guò)閾值,那么在接下的時(shí)間窗口內(nèi),自動(dòng)地熔斷。


基于異常數(shù)和異常比例的降級(jí)。當(dāng)會(huì)員接口依賴(lài)的其他接口發(fā)生異常,如果 1 分鐘內(nèi)的異常數(shù)超過(guò)閾值,或者每秒異常總數(shù)占通過(guò)量的比值超過(guò)閾值,進(jìn)入降級(jí)狀態(tài),在接下的時(shí)間窗口之內(nèi),自動(dòng)熔斷。


目前,我們最大的痛點(diǎn)是會(huì)員調(diào)用賬號(hào)的治理。公司內(nèi),想要調(diào)用會(huì)員接口,必須申請(qǐng)一個(gè)調(diào)用賬號(hào),我們會(huì)記錄該賬號(hào)的使用場(chǎng)景,并設(shè)置流控、降級(jí)策略的規(guī)則。


但在實(shí)際使用的過(guò)程中,申請(qǐng)了該賬號(hào)的同事,可能異動(dòng)到其他部門(mén)了,此時(shí)他可能也會(huì)調(diào)用會(huì)員系統(tǒng),為了省事,他不會(huì)再次申請(qǐng)會(huì)員賬號(hào),而是直接沿用以前的賬號(hào)過(guò)來(lái)調(diào)用,這導(dǎo)致我們無(wú)法判斷一個(gè)會(huì)員賬號(hào)的具體使用場(chǎng)景是什么,也就無(wú)法實(shí)施更精細(xì)的流控和降級(jí)策略。


所以,接下來(lái),我們將會(huì)對(duì)所有調(diào)用賬號(hào)進(jìn)行一個(gè)個(gè)的梳理,這是個(gè)非常龐大且繁瑣的工作,但無(wú)路如何,硬著頭皮也要做好。

鏈接:http://www.cbww.cn/news/52552.shtml

(版權(quán)歸原作者所有,侵刪)



瀏覽 36
點(diǎn)贊
評(píng)論
收藏
分享

手機(jī)掃一掃分享

分享
舉報(bào)
評(píng)論
圖片
表情
推薦
點(diǎn)贊
評(píng)論
收藏
分享

手機(jī)掃一掃分享

分享
舉報(bào)

感谢您访问我们的网站,您可能还对以下资源感兴趣:

国产秋霞理论久久久电影-婷婷色九月综合激情丁香-欧美在线观看乱妇视频-精品国avA久久久久久久-国产乱码精品一区二区三区亚洲人-欧美熟妇一区二区三区蜜桃视频 欧美色小说| 91九色精品女同系列| 日韩无码精品视频| 久久国产性爱| 9l视频自拍蝌蚪9l成人蝌蚪| 婷婷五月天成人| 第四色视频| www.av免费| 久久精品99久久久久久久久| 91蜜桃视频| 亚洲中文字幕视频在线观看| 精品成人视频| 久久午夜无码鲁丝片主演是谁| 亚洲永久天堂| 91在线成人视频| 亚洲欧洲无码在线| 69久蜜桃人妻无码精品一区| A片视频在线观看| 97人妻精品一区二区三区视频| 麻豆一区在线观看| 日韩高清成人无码| 东北老女人性爱视频| 91中文| av大香蕉| 五月婷婷激情| 国产无码久久| 色哟哟一区二区三区| 无码人妻中文字幕| 成人v| 欧美成人无码一区二区三区| 黄色免费视频| 影音先锋91视频| 丰满人妻一区二区三区Av猛交 | 最新国产视频| 综合天天| 色天使视频| 秘亚洲国产精品成人网站| 99操99| 99热青青| 性性性性性XXXXX| 精品伊人大香蕉| 高清无码1区| 成人视频网| 免费激情网站| 黃色一级A片一級片| 中文无码日本一级A片久久影视| 操逼网国产| 日本视频一区二区| 香蕉视频成人在线| 3D动漫精品啪啪一区二区竹笋| 日本免费版网站nba| 91嫖妓站街埯店老熟女| AV电影在线免费观看| 一级a一级a爱片兔兔软件| 午夜精品久久久久久久久无码99热| 美日韩视频欧美一区二区视频 | 精品免费在线观看| 亚洲高清无码免费观看| 色五月婷婷基地| 日韩AV成人电影| 免费性爱网站| 日韩欧美在线中文字幕| 亚洲天堂国产| 丰满人妻| 91精品婷婷国产综合| 日韩A片免费观看| 怡红院成人在线| 蜜桃在线无码| 丁香花免费高清视频小说完整 | 五月婷婷色色| 在线视频一区二区三区| 日本无码视频在线观看| 男女无码| 亚洲自拍偷拍视频| 精品人妻一区二区三区-国产精品| 十八禁免费网站| 伊人999| A视频在线免费观看| 99精品视频免费看| 欧美亚洲日韩中文字幕| 天天骑夜夜操| 欧美一级A片免费看| 午夜福利剧场| 中文字幕无码高清| 三级久久久| 色综合一区二区三区| 成人性爱免费视频| 中文字幕精品亚洲熟女| 一级a一级a爱片免费视频| 日韩欧美毛片| 日皮视频免费| 天天干天天撸| 插菊综合网| 国产美女操逼| 最近中文字幕免费MV第一季歌词十 | 人人操久久| 中日韩在线视频| 无码人妻精品一区二区三千菊电影| 一级特黄AAAA片| www男人的天堂| 国产ww| 一区二区三区四区免费| 欧美性爱视频免费看| 91久久国产| 大香蕉手机视频| 天天干天天日天天干| 中文字幕一区二区三区四区| 搡BBB搡BBBB搡BBBB| 亚洲福利视频电影精| xiuxiuav| 在线成人视频网站大香蕉在线网站| free性欧美| 精品人妻一区二区三区日产乱码| 日韩免费性爱视频| 日韩国产传媒| www.污污污| 人人爽人人操人人| 成人v| 一级片视频在线观看| 精品码一区二在线观看| 亚洲色图在线视频| 人人爱人人草| sesese| 看一级黄色毛片| 欧美aaa| 五月婷婷俺也去| 无码在线看| 91欧美精品成人综合在线观看 | 黄色无码视频在线观看| 上海熟妇搡BBBB搡BBBB| 成人三级毛片| www.亚洲精品| 亚洲天堂无码视频| 玩弄小怮女在线观看| 人人摸人人看| 高潮喷水AⅤ| gogogo免费高清在线偷拍| 亚洲国产中文字幕在线播放| 亚洲第一黄色视频| AA丁香综合激情| 成人av中文字幕| 日本高清黄色视频| www.水蜜桃| 狼友在线视频| 天天干天天撸影视| 欧美乱欲视频| 玖玖爱这里只有精品| 色老板在线观看视频| 欧美性色网| 欧美不卡一区二区三区| 欧美日韩性| 欧美激情一区二区| 中文字幕永久在线5| 3D精品啪啪一区二区免费| 狠狠撸天天操| www.97av| 无码人妻精品一区| 国产精品成人无码| www深夜成人a√在线| 北条麻妃一区二区三区-免费免费高清观看 | 91视频导航| 自拍无码视频| 少妇性受XXXX黑人XYX性爽| 色哟哟一中文字慕| 中国免费一级无码成人片| 亚洲无码一区二区三区| 91亚洲成人| 亚洲黄色片| 日皮视频网站| 亚洲丰满熟妇| 国产欧美一区二区三区特黄手机版| 最近中文字幕中文翻译歌词| 四川美人搡BBw搡BBw| 日韩精品人妻中文字幕第4区| 欧美视频中文字幕| 高清无码网站| 无码成人在线观看| 色五月欧美| 污污污污污www网站免费观看| 国产欧美成人| 中文字幕视频在线| 久久久久久久香蕉视频| 无码一区二区三区免费看| 青娱乐日韩| 亚洲五月天婷婷| 最新国产AV| 国产成人在线视频| 黄片中文| 大鸡巴草逼| 嫩草视频在线观看| 国产无码久久| 色伊人网| 国产一级二级片| 91色秘乱码一区二区| 国产高清一区二区| 大香蕉欧美| 亚洲欧美激情小说另类| 日本天堂在线视频| 北条麻妃无码精品| 搡BBB| 淫荡97| 操逼网址大全| 国产乱子伦精品免费,| 欧美日韩国产成人| 汇聚全球淫荡熟女| 无码免费毛片| 久久久久蜜桃| 最新国产av| 亚洲AV在线看| 日本无码视频在线| 久久在线精品| 亚洲午夜福利在线观看| 中文字幕日日| 影音先锋AV资源在线| 男女视频91| 国产成人精品无码免费| 精品國產一區二區三區久久蜜月 | 国产噜噜噜噜噜久久久久久久久 | 精品91海角乱| 成人肏逼视频在线| 伊人久久无码| 日韩一区在线视频| 欧美日韩一区二区三区| 成人性生交片无码免费看人| 亚洲视频91| 免费在线看黄网站| 久久午夜无码鲁丝片午夜精品偷窥| 伊人网在线| 亚洲免费观看高清完整版在线观 | 一区二区三区日本| 国产成人无码一区二区| 91三级片| 午夜试看120秒体验区的特点| 簧片在线免费观看| 97超碰大香蕉| 欧美日韩加勒比| 亚洲超碰在线观看| 97A片在线观看播放| 日本老妇操屄视频| 草久伊人| 日韩一卡二卡| 三级网站在线| www.91在线看| 日韩AV在线免费| 丰满人妻一区二区三区| 国产成人69免费看| 成人亚洲AV| 久久精品6| 欧美日韩免费在线视频| 丁香五月婷婷啪啪| 18禁在线| 亚洲欧美久久久久久久久久久久| 中文字幕手机在线视频| 亚洲欧美国产精品专区久久| 亚洲日韩一区二区三区| 无码专区中文字幕| 伊人亚洲综合| 亚洲成人人妻| 青娱乐Av| 日韩一级一级| 日韩18在线| 手机在线看A片| 91传媒在线观看| 啪啪成人视频| 亚洲欧美高清| 欧美色小说| 无码人妻AV一区| 开心深爱激情网| 91乱伦| 日韩国产免费| 另类小说五月天| 亚洲AV在线看| 亚洲少妇免费| 日日干天天操| 亚洲精品18在线观看| 欧美激情影院| 国产1区| 国产精品高清网站| 大香蕉1024| 一夲道无码专区av无码A片| 国产午夜成人视频| 国产日韩欧美一区二区| 操逼视频免费| 中文字幕精品1| 97人妻视频| 日本无码久久嗯啊流水| 中文无码在线观看中文字幕av中文 | 日韩精品无码一区二区三区| 久99| 成人国产片女人爽到高潮| 婷婷五月天性爱| 国产无码片| 国产免费国产| 日韩高清在线播放| 狠狠久久| 青青草娱乐视频| 中文av在线播放| 国产久久视频在线观看| 日韩美女在线| 日韩中文字幕无码| 亚洲AV无码久久寂寞少妇多毛 | 亚洲XXXXX| 精品国产91| jizz日本护士| 手机看片1024旧版| 欧美AAAAAA视频| 欧美性区| 9118禁| 久久视频这里有精品| 精品人妻午夜一区二区三区四区| 浮力影院久久| 91无码成人| 夜夜骚AV一二三区无码| 高清无码不卡视频| 中文字幕AV在线观看| 91视频免费在线看| 色婷婷在线无码精品秘人口传媒| 老鸭窝av免费入口在线观看 | 亚洲精品午夜精品| 欧美在线日韩在线| 在线播放无码| 免费看一级高潮毛片| 午夜激情乱伦| 九九九精品| 色色激情五月天| 婷婷日韩| 一级AAAAA片裸体做受| 四虎性爱| 青娱乐成人在线视频| 亚洲无码成人在线| 亚洲1234区| 操屄视频在线| 国产精品成人国产乱| 人人操人人骑| 少妇人妻偷人精品无码视频新浪 | 国产高清无码免费视频| 黄页免费视频| 色吧五月| 欧美口爆视频| 亚洲色图p| 成人免费视频一区二区| gogogo高清在线观看免费直播中国| 国产l精品久久久久久久久久| 奇米色色| 97精品人妻一区二区三区香蕉 | 五月播播| 操逼网国产| 韩日不卡视频| 91久久久久国产一区二区| 四虎影院中文字幕| 嫰BBB槡BBBB槡BBBB| AV无码精品| 日韩成人视频在线| 深爱激情综合| 欧美亚洲动漫| 亚洲无码aa| 精品一区无码| 国产一精品| 91人人爱| 人妻在线无码| 中文字幕国产av| 久9久9| 在线看片你懂的| 中文字幕成人av| AV网站免费看| 五月婷婷俺也去| 久久穴| 亚洲成人视频网| 国产精品网站在线观看| 国产综合无码| 江苏妇搡BBBB搡BBBB| 日韩无码AV中文字幕| 国产夫妻在线| 91A视频| 天天做| 摸BBB搡BBB搡BBBB| h片在线免费观看| 亚洲综合在线观看视频| 亚洲国产精品自在自线| 日本一区二区三区在线播放| 日本不卡一区二区三区四区| 欧美精品成人在线| 国产一级特黄| 超碰少妇| 男女啪啪啪网站| 色综合色| 中国特级毛片| 悠悠AV导航| 中文字幕久热| 国模一区二区三区| 中文字幕第2页| 青娱乐亚洲视频在线| 亚洲自拍偷拍视频| 五月六月丁香| 成人无码在线观看免费视频| 成人午夜在线观看| 99re2| 特级西西人体444.444人体聚色| 欧美三级欧美一级| 污视频免费在线观看| 亚洲免费人妻| 天天爽夜夜爽夜夜爽精品视频| 人人妻人人要| 狠狠艹| 国产欧美综合一区二区三区| 中文字幕日韩美| 午夜成人福利电影| 91丨九色丨国产在线| 北条麻妃无码精品AV怎么看| 污视频在线看| 91在线无码精品入口电车| 亚洲性爱一区二区| 久久久偷拍视频| 亚洲福利视频在线| 一区二区三区久久久久| 日韩中文性受视频| 强开小嫩苞一区二区电影| 国产一级做a爱免费视频| 插吧插吧网| 国产成人无码Av片在线公司| 夜夜骚| 日韩成人精品视频| 日韩激情一区二区| 亚洲性爱在线| 三级片日韩| 四色五月婷婷| 亚洲免费成人| 欧一美一婬一伦一区二区三区黑人-亚| aa人人操夜夜操人人| 韩国精品在线| 无码人妻av一区| 国产一级AAAAA片免费| 在线a免费| 亚洲综合免费| 波多野结衣在线无码| 中文字幕中文| 少妇BBBBBB| 日本欧美亚洲| 青青草性爱| 日韩美毛片| 国产色五月| 屁屁影院CCYYCOM发布地| 欧美无人区码suv| 日韩a在线| 日韩AV网站在线观看| 无码群交东京热| 91视频在线网站| 俺去啦俺也去| 欧美成人无码A片免费| 青草一区| 综合网视频| 日韩福利在线| 爱草在线| 亚洲色图一区二区| 在线操| 爱爱爱爱视频| 久艹在线观看视频| 青青操在线观看| 蜜臀99久久精品久久久懂爱| 日韩精品人妻| 久久机热| 美女乱伦| 91视频网站免费观看| 国产剧情一区二区av在线观看| 亚洲中文字幕视频在线观看| 黄片视频在线免费看| footjobvk| 男人天堂v| 日韩网站在线观看| 91人妻一区二区三区无不码超满| 人人妻人人澡人人爽人人欧美一区 | 少妇中文字幕| 免费成人AV| 怡春院成人| 三级黄色视频在线观看| 国产精品一区二区黑人巨大| 无码免费播放| 亚洲日韩免费观看| 无套内射在线| 国产操老女人| 91av免费观看| 成人A√| 午夜人妻无码| 黄色在线| 欧美一级黄色A片| 一区二区三区久久久久| 亚洲成人人妻| 午夜激情网站| 欧美女人操逼| 五月停亭六月,六月停亭的英语 | 草逼网址| 狠狠躁日日躁夜夜躁A片小说免费| 伊人影院在线免费观看| 亚洲无码二区| 国产精品人妻AⅤ在线看| 国产99精品视频| 国产一级AA大片毛片| 91丨露脸丨熟女| AV黄色在线观看| 青青草原成人在线视频| 激情网婷婷| 黄色视频网站在线观看| 亚洲AV成人精品一区二区三区| 51妺嘿嘿在线电影免费观看| WWW黄片| 91AV电影| 亚洲在线视频免费观看| 国内自拍偷拍视频| 骚逼国产| 久久任你操| 日本天堂网| 偷拍二区| 蜜桃视频com.www| 自拍一区在线观看| 欧美日韩国产在线| 国精品伦一区一区三区有限公司| 亚洲AV播放| 一区无码精品| 天堂亚洲精品| 日韩成人视频在线观看| 在线免费观看中文字幕| 青青色视频| 啪啪视频m3u8| 日本50路熟女| 天天日天天操天天干| 亚洲精品成AV人片天堂无码| 欧美人成人无码| 国产免费性爱视频| 东京热久久综合色五月老师| 中文字幕第一区| 久久精品国产精品| 成人毛片18| 国产亚洲欧美日韩高清| 91麻豆国产在线观看| 免费无码高清视频| 三级片在线网站| 人人妻人人超| 欧美黄色一级网站| 日韩91在线视频| 欧美肏屄视频| 久久无码一区二区三区| 无套免费视频欧美| 麻豆精品无码| 高清无码内射视频| 九九热无码| 天天操夜夜骑| 九九色影院| 91午夜视频| 你懂的视频在线播放| 亚洲无码少妇| 国产精品久久久久久久久A| 草逼com| 欧美老熟妇乱大交XXXXX| 欧美第二页| 日韩啊啊啊| 成人动漫免费观看| 波多野结衣成人网站| 伊人激情网| 91国产爽黄在线| 暖暖在线视频| 国产精品第二页| 日本中文字幕网| 大香蕉尹人在线视频| 久草在在线视频| 南京搡BBBB搡BBBB| 欧美日韩精品久久久免费观看| 黄片免费视频观看| 夜夜操天天日| 九九色热| AV电影在线免费观看| 操逼电影免费| 国产大奶一区二区| 51成人网站免费| 亚洲精品成人无码毛片| 老婆中文字幕乱码中文乱码| 天天草天天撸| 亚洲精品成人AV| 欧美老司机| 啪啪人妻| 骚小姨子无码| 国产操美女| 欧美老女人性爱视频| 久草com| 亚洲av大片| 视频一区二区免费| 做爱激情视频网站| 免费无码毛片一区二区A片小说| 91免费视频在线| 操逼视频免费播放| 高清无码中文字幕在线观看| 91人妻人人澡人人爽精品| 53岁露大奶熟女偷情贴吧| 操逼首页123| 91新婚人妻偷拍| 亚洲91黄色片| 婷婷五月天激情俺来也| 欧美A级视频| 99re久久| 日本不卡中文字幕| 三级片在线网站| 微熟女导航| 色婷婷国产精品综合在线观看| 日本黄色色情视频| 日本在线观看www| 成人做爱黄片| 久久狠狠干| 亚洲色视频在线观看| 老司机永久免费91| 欧美日韩高清| 欧美老妇另类老屁XXX| 日韩一级欧美一级| 欧美中文字幕在线视频| 国产一级a一级a免费视频| 国产激情啪啪| 天天做天天爽| 三级午夜在线无码| 欧美久久免费| A级片免费| 北条麻妃AV在线播放| 色视频免费观看| 国产精品人妻无码久久久郑州天气网| 91精品久久久久久综合五月天| 青青草大香蕉在线| 1024国产在线| 人人妻人人澡人人爽久久| 亚洲AVwww| 成人毛片网| 国产成人Av| 操逼免费| 91人妻成人精品一区二区| 大地二中文在线观看免费鲁大师 | 99久久国内精品成人免费| 国产在线拍揄自揄拍无码视频| 中文字幕av久久久久久欧洲尺码| 日韩精品久久| 亚洲日韩中文无码| 免费婷婷| 操BBBB| 91亚洲国产成人精品一区| 熟女91视频| 国产91探花秘入口| 欧美性xxxxx| 午夜福利免费在线观看| 操综合| 亚洲AV无码国产精品二区| 久久久久国产一区二区三区四区| 国产黄色视频在线观看| 日本A片| 成人无码免费毛片A片| 91嫩草欧美久久久九九九| 国产无遮挡又黄又爽免费网站| 精品国产乱码久久久久久郑州公司| 欧美一级婬片免费视频华泰老添妇| 大香蕉在线伊| 亚洲综合天堂| 亚洲无码专区在线观看| 丝袜足交在线| 亚洲成人网在线| 99成人视频| 国产在线精品观看| 影音先锋av资源在线| 欧美毛片在线观看| 免费中文视频| 91色色影院| 激情综合视频| 国产成人自拍在线| 狠狠狠狠狠操| 日本精品一区二区三区四区的功能 | 精品内射| 青青免费视频| 强伦轩人妻一区二区三区四区| 一区二区三区日韩| 俺也色俺也干| 欧美午夜性爱视频| 亚l洲视频在线观看| 97人妻人人澡人人爽人人| 国产综合久久久7777777 | 911精品人妻一区二区三区A片| 国产黄色自拍视频| 操老女人逼视频| 性久久久久久久| 操逼操逼操逼操逼操逼操逼 | 精品操逼| 青青日逼| 国产精品成人在线| 悠悠无码一区日韩妇女| 国产91在线一区| 国产精品综合激情| 青青精品视频| 自拍偷拍影音先锋| 青春草视频在线观看| 中文字幕国产综合| 欧美亚洲动漫| 南京搡BBBB搡BBBB| 伊人免费视频在线观看| 青青草手机在线观看| 九九九在线| 无码免费一区二区三区| 91在线无码精品秘入口电车| 国产高清小视频| 中文字幕在线亚洲| 一区二区三区麻豆| 国产情侣在线视频| 狼人社區91國產精品| 麻豆成人网| 嫩草入口| 亚洲av性爱| 四虎激情影院| 亚洲视频在线观看中文字幕| 黃色毛片A片AAAA级20| 高H网站| 午夜精品一区二区三区在线成人| 欧美视频一| 一级A片黄色| 一级a看片在线观看| 九九九在线视频| 免费观看黄色电影| 北条麻妃91| 亚洲国产一区二区三区| 国产午夜视频| 插插插插网| 亚洲无码午夜| 丰满人妻一区二区三区46| 91视频第一页| 成人aV无码精品国产一区二区| 123好逼网| 91久久国产综合久| 陈冠希和张柏芝mv| 插逼网站| 久久久久久久香蕉视频| WWW黄片| 国产精品777777| 色撸撸在线视频| 欧美激情视频一区二区| 久久久综合| 亚洲第一页在线| 无码视频在线免费观看| 色图在线观看| 尤物av在线| 好好日视频| 久久九九热| 欧美高清视频| 老司机免费福利视频| 国产无码自拍| 特黄特色免费大片| 影音先锋男人| 色五月欧美| 精品乱子伦一区二区三区在线播放 | 成人日韩| 亚洲免费观看| 国产精品国产三级片| 男人的天堂视频在线| 粉嫩小泬BBBBBB免费看| ww久久| 在线观看黄色av| 一区二区在线视频| 波多野结衣av在线观看窜天猴| 91ThePorn国产| 青青草视频免费| sm在线观看| 午夜无码av| 欧美日韩a| 欧美精品久久久久久久久爆乳| 成人国产三级| www.97av| 伊人久久国产| 人人妻人人| 国产操逼网站| 亚洲国产精品自| 欧美亚洲精品在线| 免费A在线观看| 99re在线视频观看| 欧美一级日韩一级| 青吴乐大香蕉| 久久视频这里有精品| 大香蕉天天操| 成人免费看片| 九九超碰| 日韩美女免费性爱视频| 亚洲经典一| 久久婷婷婬片A片AAA| 新妺妺窝窝777777野外| 日韩精品人妻中文字幕| 成人免费视频性爱| 97精品人妻一区二区三区香蕉农| 88在线无码精品秘入口九色| 欧美XXX黑人XYX性爽| 天天操中文字幕| 2025av中文字幕| 精品国产免费无码久久噜噜噜AV | 国产在线小视频| 性猛交╳XXX乱大交| 99在线观看免费| 欧美一级婬片AAAAAA片| 成人网站一区| 日本精品视频| 北条麻妃无码视频在线| 久久午夜无码鲁丝片主演是谁 | 嘿嘿午夜| 在线观看黄片| 亚洲91无码精品一区在线播放| 国产精品毛片视频| 日韩中文字幕在线观看视频| 日韩精品人妻一区二区| 国外亚洲成AV人片在线观看| 琪琪色五月天| 成人动漫在线观看| 日本一级黃色大片看免费| xxx国产精品| 精品一区二区三区无码| 国产一级a毛一级a毛视频在线网站)| 91中文字幕+乱码| 五月丁香久久| 岛国免费视频| 俺去也www俺去也com| 亚洲无码一区二区在线观看| 91福利在线观看| 人人妻人人澡人人DⅤD| 久久黄色视频免费观看| 福利久久| 最新97色黄色精品高清网站| 超碰人人搞| 欧美日韩亚洲中文字幕| 一区二区黄色| 懂色成人视频在线观看| 久久久123| 91无码人妻一区二区成人AⅤ | 手机毛片在线播放| 黄色A级视频| 亚洲小说欧美激情另类A片小说| 免费国产黄色| 久99在线视频| 婷婷欧美日韩| 特级毛片片A片AAAAAA| 久久久精品黄色网址| 在线成人自拍| 欧美三级美国一级| 中文字幕av久久久久久欧洲尺码| 亚洲视频网址| 日韩欧美在线中文字幕| 亚洲无码自拍偷拍| 日韩插泄| 中文无码AV在线| 99热在线观看免费| 久久精品人妻| 日本少妇性爱视频| 午夜在线观看视频| 水果派解说在线观看| 亚洲无吗在线视频| 亚洲AV无码成人精品区久| 亚洲欧洲精品在线| 亚洲无码人妻| 国产精品女人777777| 神马午夜| 国产精品久久久久久久久久乐趣播| 老太色HD色老太HD.| 亚洲欧美日韩激情| 国产视频中文字幕| 蜜桃视频网站在线观看| 精品国产va久久久久久久| 日韩黄视频| 精品欧美激情精品一区| 日韩精品A片| 久久久久亚洲AV成人网人人软件| 懂色中国闺密偷情懂色AV| 无码精品在线观看| 操骚屄视频| 欧美性爱在线| 中国精品77777777| 中文字幕不卡在线| 日日夜夜老司机| 精品91在线视频| 古装一级无遮挡A片| 色色激情视频| 久久久久a| 福利视频亚洲| 色四播播| 成人免费视频在线| 亚洲视频免费播放| 91久久久精品| 无码伦理| 人人爽人人干| 日韩V欧美| 日皮视频在线| wwwA片| 天天视频入口| 婷婷色在线播放| 亚洲国产精品成人综合色五月| 亚洲有码在线视频| 亚洲无码av在线播放| 99久久婷婷国产综合精品青牛牛| 69人妻人人澡人人爽久久| 在线天堂视频| 男女视频网站在线观看| 日本少妇做爱| 一区二区视频免费| 91人妻人人澡人人爽人人DVD| 午夜成人网站| 六月丁香欧美综合| 色婷婷av在线|