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

螞蟻金服一面:十道經(jīng)典面試題解析

共 11404字,需瀏覽 23分鐘

 ·

2021-09-03 09:01

1. 用到分布式事務(wù)嘛?為什么用這種方案,有其他方案嘛?

什么是分布式事務(wù)

談到事務(wù),我們就會(huì)想到數(shù)據(jù)庫(kù)事務(wù),很容易就想到原子性、一致性、持久性、隔離性。

分布式事務(wù)跟數(shù)據(jù)庫(kù)事務(wù)有點(diǎn)不一樣,它是指事務(wù)的參與者、支持事務(wù)的服務(wù)器、資源服務(wù)器以及事務(wù)管理器分別位于不同的分布式系統(tǒng)的不同節(jié)點(diǎn)之上。簡(jiǎn)單來(lái)說(shuō),分布式事務(wù)指的就是分布式系統(tǒng)中的事務(wù),它的存在就是為了保證不同數(shù)據(jù)庫(kù)節(jié)點(diǎn)的數(shù)據(jù)一致性。

分布式事務(wù)基礎(chǔ)

分布式事務(wù)需要需要知道CAP理論BASE理論。

CAP理論

  • 一致性(C:Consistency):一致性是指數(shù)據(jù)在多個(gè)副本之間能否保持一致的特性。例如一個(gè)數(shù)據(jù)在某個(gè)分區(qū)節(jié)點(diǎn)更新之后,在其他分區(qū)節(jié)點(diǎn)讀出來(lái)的數(shù)據(jù)也是更新之后的數(shù)據(jù)。
  • 可用性(A:Availability):可用性是指系統(tǒng)提供的服務(wù)必須一直處于可用的狀態(tài),對(duì)于用戶的每一個(gè)操作請(qǐng)求總是能夠在有限的時(shí)間內(nèi)返回結(jié)果。這里的重點(diǎn)是"有限時(shí)間內(nèi)"和"返回結(jié)果"。
  • 分區(qū)容錯(cuò)性(P:Partition tolerance):分布式系統(tǒng)在遇到任何網(wǎng)絡(luò)分區(qū)故障的時(shí)候,仍然需要能夠保證對(duì)外提供滿足一致性和可用性的服務(wù)。

一個(gè)分布式系統(tǒng)中,CAP理論它只能同時(shí)滿足(一致性、可用性、分區(qū)容錯(cuò)性)中的兩點(diǎn)。

BASE 理論

BASE 理論, 是對(duì)CAP中AP的一個(gè)擴(kuò)展,對(duì)于我們的業(yè)務(wù)系統(tǒng),我們考慮犧牲一致性來(lái)?yè)Q取系統(tǒng)的可用性和分區(qū)容錯(cuò)性。BASE是Basically Available(基本可用),Soft state(軟狀態(tài)),和 Eventually consistent(最終一致性)三個(gè)短語(yǔ)的縮寫(xiě)。

  • 基本可用是指,通過(guò)支持局部故障而不是系統(tǒng)全局故障來(lái)實(shí)現(xiàn)的;
  • Soft State表示狀態(tài)可以有一段時(shí)間不同步;
  • 最終一致,最終數(shù)據(jù)是一致的就可以了,而不是實(shí)時(shí)保持強(qiáng)一致。

分布式事務(wù)的幾種解決方案

  • 2PC(二階段提交)方案,事務(wù)的提交分為兩個(gè)階段:準(zhǔn)備階段和提交執(zhí)行方案。
  • TCC(即Try、Confirm、Cancel),它采用了補(bǔ)償機(jī)制,核心思想是:針對(duì)每個(gè)操作,都要注冊(cè)一個(gè)與其對(duì)應(yīng)的確認(rèn)和補(bǔ)償(撤銷)操作。
  • 本地消息表,它的核心思想就是將分布式事務(wù)拆分成本地事務(wù)進(jìn)行處理。
  • 最大努力通知,實(shí)現(xiàn)最大努力通知,可以采用MQ的ack機(jī)制。
  • Saga事務(wù),它的核心思想是將長(zhǎng)事務(wù)拆分為多個(gè)本地短事務(wù),由Saga事務(wù)協(xié)調(diào)器協(xié)調(diào),如果正常結(jié)束那就正常完成,如果某個(gè)步驟失敗,則根據(jù)相反順序一次調(diào)用補(bǔ)償操作。

業(yè)界目前使用本地消息表這種方案是比較多的,它的核心思想就是將分布式事務(wù)拆分成本地事務(wù)進(jìn)行處理。可以看一下基本的實(shí)現(xiàn)流程圖吧:

對(duì)于消息發(fā)送方:

  • 首先需要有一個(gè)消息表,記錄著消息狀態(tài)相關(guān)信息。
  • 業(yè)務(wù)數(shù)據(jù)和消息表在同一個(gè)數(shù)據(jù)庫(kù),即要保證它倆在同一個(gè)本地事務(wù)。
  • 在本地事務(wù)中處理完業(yè)務(wù)數(shù)據(jù)和寫(xiě)消息表操作后,通過(guò)寫(xiě)消息到MQ消息隊(duì)列。
  • 消息會(huì)發(fā)到消息消費(fèi)方,如果發(fā)送失敗,即進(jìn)行重試。

消息消費(fèi)方:

  • 處理消息隊(duì)列中的消息,完成自己的業(yè)務(wù)邏輯。
  • 此時(shí)如果本地事務(wù)處理成功,則表明已經(jīng)處理成功了。
  • 如果本地事務(wù)處理失敗,那么就會(huì)重試執(zhí)行。
  • 如果是業(yè)務(wù)上面的失敗,給消息生產(chǎn)方發(fā)送一個(gè)業(yè)務(wù)補(bǔ)償消息,通知進(jìn)行回滾等操作。

生產(chǎn)方和消費(fèi)方定時(shí)掃描本地消息表,把還沒(méi)處理完成的消息或者失敗的消息再發(fā)送一遍。如果有靠譜的自動(dòng)對(duì)賬補(bǔ)賬邏輯,這種方案還是非常實(shí)用的。

2.JDK6、7、8分別提供了哪些新特性

JDK 6 新特性

  • Desktop類(它允許一個(gè)Java應(yīng)用程序啟動(dòng)本地的另一個(gè)應(yīng)用程序去處理URI或文件請(qǐng)求)
  • 使用JAXB2來(lái)實(shí)現(xiàn)對(duì)象與XML之間的映射
  • 輕量級(jí) Http Server API
  • 插入式注解處理API(lombok框架基于這個(gè)特性實(shí)現(xiàn))
  • STAX(是JDK6中一種處理XML文檔的API)

JDK 7的新特性

  • switch 支持String字符串類型
  • try-with-resources,資源自動(dòng)關(guān)閉
  • 整數(shù)類型如(byte,short,int,long)能夠用二進(jìn)制來(lái)表示
  • 數(shù)字常量支持下劃線
  • 泛型實(shí)例化類型自動(dòng)推斷,即”<>”
  • 一個(gè)catch中捕獲多個(gè)異常類型,用(|)分隔開(kāi)
  • 增強(qiáng)的文件系統(tǒng)
  • Fork/join 框架

JDK8 的新特性

  • lambada表達(dá)式
  • 函數(shù)式接口
  • 方法引用
  • 默認(rèn)方法
  • Stream API
  • Optional
  • Date Time API(如LocalDate)
  • 重復(fù)注解
  • Base64
  • JVM的新特性(如元空間Metaspace代替持久代)

3. https原理,工作流程

  • HTTPS = HTTP + SSL/TLS,即用SSL/TLS對(duì)數(shù)據(jù)進(jìn)行加密和解密,Http進(jìn)行傳輸。
  • SSL,即Secure Sockets Layer(安全套接層協(xié)議),是網(wǎng)絡(luò)通信提供安全及數(shù)據(jù)完整性的一種安全協(xié)議。
  • TLS,即Transport Layer Security(安全傳輸層協(xié)議),它是SSL3.0的后續(xù)版本。
  1. 客戶端發(fā)起Https請(qǐng)求,連接到服務(wù)器的443端口。
  2. 服務(wù)器必須要有一套數(shù)字證書(shū)(證書(shū)內(nèi)容有公鑰、證書(shū)頒發(fā)機(jī)構(gòu)、失效日期等)。
  3. 服務(wù)器將自己的數(shù)字證書(shū)發(fā)送給客戶端(公鑰在證書(shū)里面,私鑰由服務(wù)器持有)。
  4. 客戶端收到數(shù)字證書(shū)之后,會(huì)驗(yàn)證證書(shū)的合法性。如果證書(shū)驗(yàn)證通過(guò),就會(huì)生成一個(gè)隨機(jī)的對(duì)稱密鑰,用證書(shū)的公鑰加密。
  5. 客戶端將公鑰加密后的密鑰發(fā)送到服務(wù)器。
  6. 服務(wù)器接收到客戶端發(fā)來(lái)的密文密鑰之后,用自己之前保留的私鑰對(duì)其進(jìn)行非對(duì)稱解密,解密之后就得到客戶端的密鑰,然后用客戶端密鑰對(duì)返回?cái)?shù)據(jù)進(jìn)行對(duì)稱加密,醬紫傳輸?shù)臄?shù)據(jù)都是密文啦。
  7. 服務(wù)器將加密后的密文返回到客戶端。
  8. 客戶端收到后,用自己的密鑰對(duì)其進(jìn)行對(duì)稱解密,得到服務(wù)器返回的數(shù)據(jù)。

4. 講講java jmm volatile的實(shí)現(xiàn)原理

volatile關(guān)鍵字是Java虛擬機(jī)提供的的最輕量級(jí)的同步機(jī)制,它作為一個(gè)修飾符,用來(lái)修飾變量。它保證變量對(duì)所有線程可見(jiàn)性,禁止指令重排,但是不保證原子性。

volatile是如何保證可見(jiàn)性的呢?我們先來(lái)看下java內(nèi)存模型(jmm)

  • Java虛擬機(jī)規(guī)范試圖定義一種Java內(nèi)存模型,來(lái)屏蔽掉各種硬件和操作系統(tǒng)的內(nèi)存訪問(wèn)差異,以實(shí)現(xiàn)讓Java程序在各種平臺(tái)上都能達(dá)到一致的內(nèi)存訪問(wèn)效果。
  • 為了更好的執(zhí)行性能,java內(nèi)存模型并沒(méi)有限制執(zhí)行引擎使用處理器的特定寄存器或緩存來(lái)和主內(nèi)存打交道,也沒(méi)有限制編譯器進(jìn)行調(diào)整代碼順序優(yōu)化。所以Java內(nèi)存模型會(huì)存在緩存一致性問(wèn)題和指令重排序問(wèn)題的。
  • Java內(nèi)存模型規(guī)定所有的變量都是存在主內(nèi)存當(dāng)中,每個(gè)線程都有自己的工作內(nèi)存。這里的變量包括實(shí)例變量和靜態(tài)變量,但是不包括局部變量,因?yàn)榫植孔兞渴蔷€程私有的。
  • 線程的工作內(nèi)存保存了被該線程使用的變量的主內(nèi)存副本,線程對(duì)變量的所有操作都必須在工作內(nèi)存中進(jìn)行,而不能直接操作操作主內(nèi)存。并且每個(gè)線程不能訪問(wèn)其他線程的工作內(nèi)存。

volatile變量,保證新值能立即同步回主內(nèi)存,以及每次使用前立即從主內(nèi)存刷新,所以我們說(shuō)volatile保證了多線程操作變量的可見(jiàn)性。

指令重排是指在程序執(zhí)行過(guò)程中,為了提高性能, 編譯器和CPU可能會(huì)對(duì)指令進(jìn)行重新排序。volatile是如何禁止指令重排的?在Java語(yǔ)言中,有一個(gè)先行發(fā)生原則(happens-before)

  • 程序次序規(guī)則:在一個(gè)線程內(nèi),按照控制流順序,書(shū)寫(xiě)在前面的操作先行發(fā)生于書(shū)寫(xiě)在后面的操作。
  • 管程鎖定規(guī)則:一個(gè)unLock操作先行發(fā)生于后面對(duì)同一個(gè)鎖額lock操作
  • volatile變量規(guī)則:對(duì)一個(gè)變量的寫(xiě)操作先行發(fā)生于后面對(duì)這個(gè)變量的讀操作
  • 線程啟動(dòng)規(guī)則:Thread對(duì)象的start()方法先行發(fā)生于此線程的每個(gè)一個(gè)動(dòng)作
  • 線程終止規(guī)則:線程中所有的操作都先行發(fā)生于線程的終止檢測(cè),我們可以通過(guò)Thread.join()方法結(jié)束、Thread.isAlive()的返回值手段檢測(cè)到線程已經(jīng)終止執(zhí)行
  • 線程中斷規(guī)則:對(duì)線程interrupt()方法的調(diào)用先行發(fā)生于被中斷線程的代碼檢測(cè)到中斷事件的發(fā)生
  • 對(duì)象終結(jié)規(guī)則:一個(gè)對(duì)象的初始化完成先行發(fā)生于他的finalize()方法的開(kāi)始
  • 傳遞性:如果操作A先行發(fā)生于操作B,而操作B又先行發(fā)生于操作C,則可以得出操作A先行發(fā)生于操作C

實(shí)際上volatile保證可見(jiàn)性和禁止指令重排都跟內(nèi)存屏障有關(guān)。我們來(lái)看一段volatile使用的demo代碼

public class Singleton {  
    private volatile static Singleton instance;  
    private Singleton (){}  
    public static Singleton getInstance() {  
    if (instance == null) {  
        synchronized (Singleton.class) {  
        if (instance == null) {  
            instance = new Singleton();  
        }  
        }  
    }  
    return instance;  
    }  
}  

編譯后,對(duì)比有volatile關(guān)鍵字和沒(méi)有volatile關(guān)鍵字時(shí)所生成的匯編代碼,發(fā)現(xiàn)有volatile關(guān)鍵字修飾時(shí),會(huì)多出一個(gè)lock addl $0x0,(%esp),即多出一個(gè)lock前綴指令,lock指令相當(dāng)于一個(gè)「內(nèi)存屏障」

lock指令相當(dāng)于一個(gè)內(nèi)存屏障,它保證以下這幾點(diǎn):

  • 1.重排序時(shí)不能把后面的指令重排序到內(nèi)存屏障之前的位置
  • 2.將本處理器的緩存寫(xiě)入內(nèi)存
  • 3.如果是寫(xiě)入動(dòng)作,會(huì)導(dǎo)致其他處理器中對(duì)應(yīng)的緩存無(wú)效。

第2點(diǎn)和第3點(diǎn)就是保證volatile保證可見(jiàn)性的體現(xiàn)嘛,第1點(diǎn)就是禁止指令重排列的體現(xiàn)。內(nèi)存屏障又是什么呢?

內(nèi)存屏障四大分類:(Load 代表讀取指令,Store代表寫(xiě)入指令)

內(nèi)存屏障類型抽象場(chǎng)景描述
LoadLoad屏障Load1; LoadLoad; Load2在Load2要讀取的數(shù)據(jù)被訪問(wèn)前,保證Load1要讀取的數(shù)據(jù)被讀取完畢。
StoreStore屏障Store1; StoreStore; Store2在Store2寫(xiě)入執(zhí)行前,保證Store1的寫(xiě)入操作對(duì)其它處理器可見(jiàn)
LoadStore屏障Load1; LoadStore; Store2在Store2被寫(xiě)入前,保證Load1要讀取的數(shù)據(jù)被讀取完畢。
StoreLoad屏障Store1; StoreLoad; Load2在Load2讀取操作執(zhí)行前,保證Store1的寫(xiě)入對(duì)所有處理器可見(jiàn)。

為了實(shí)現(xiàn)volatile的內(nèi)存語(yǔ)義,Java內(nèi)存模型采取以下的保守策略

  • 在每個(gè)volatile寫(xiě)操作的前面插入一個(gè)StoreStore屏障。
  • 在每個(gè)volatile寫(xiě)操作的后面插入一個(gè)StoreLoad屏障。
  • 在每個(gè)volatile讀操作的后面插入一個(gè)LoadLoad屏障。
  • 在每個(gè)volatile讀操作的后面插入一個(gè)LoadStore屏障。

有些小伙伴,可能對(duì)這個(gè)還是有點(diǎn)疑惑,內(nèi)存屏障這玩意太抽象了。我們照著代碼看下吧:

內(nèi)存屏障保證前面的指令先執(zhí)行,所以這就保證了禁止了指令重排啦,同時(shí)內(nèi)存屏障保證緩存寫(xiě)入內(nèi)存和其他處理器緩存失效,這也就保證了可見(jiàn)性,哈哈~

5. 講一講7層網(wǎng)絡(luò)模型,tcp的為什么要三次握手

計(jì)算機(jī)網(wǎng)路體系結(jié)構(gòu)有三層:OSI七層模型、TCP/IP四層模型、五層體系結(jié)構(gòu),如圖:

七層模型,亦稱OSI(Open System Interconnection),國(guó)際標(biāo)準(zhǔn)化組織(International Organization for Standardization)制定的一個(gè)用于計(jì)算機(jī)或通信系統(tǒng)間互聯(lián)的標(biāo)準(zhǔn)體系。

  • 應(yīng)用層:網(wǎng)絡(luò)服務(wù)與最終用戶的一個(gè)接口,常見(jiàn)的協(xié)議有:HTTP FTP  SMTP SNMP DNS.
  • 表示層:數(shù)據(jù)的表示、安全、壓縮。,確保一個(gè)系統(tǒng)的應(yīng)用層所發(fā)送的信息可以被另一個(gè)系統(tǒng)的應(yīng)用層讀取。
  • 會(huì)話層:建立、管理、終止會(huì)話,對(duì)應(yīng)主機(jī)進(jìn)程,指本地主機(jī)與遠(yuǎn)程主機(jī)正在進(jìn)行的會(huì)話.
  • 傳輸層:定義傳輸數(shù)據(jù)的協(xié)議端口號(hào),以及流控和差錯(cuò)校驗(yàn),協(xié)議有TCP UDP.
  • 網(wǎng)絡(luò)層:進(jìn)行邏輯地址尋址,實(shí)現(xiàn)不同網(wǎng)絡(luò)之間的路徑選擇,協(xié)議有ICMP IGMP IP等.
  • 數(shù)據(jù)鏈路層:在物理層提供比特流服務(wù)的基礎(chǔ)上,建立相鄰結(jié)點(diǎn)之間的數(shù)據(jù)鏈路。
  • 物理層:建立、維護(hù)、斷開(kāi)物理連接。

6.說(shuō)說(shuō)線程池的工作原理

面試官如果要我們講下線程池工作原理的話,大家講下以下這個(gè)流程圖就可以啦:

為了形象描述線程池執(zhí)行,加深大家的理解,我打個(gè)比喻:

  • 核心線程比作公司正式員工
  • 非核心線程比作外包員工
  • 阻塞隊(duì)列比作需求池
  • 提交任務(wù)比作提需求
  • 當(dāng)產(chǎn)品提個(gè)需求,正式員工(核心線程)先接需求(執(zhí)行任務(wù))
  • 如果正式員工都有需求在做,即核心線程數(shù)已滿),產(chǎn)品就把需求先放需求池(阻塞隊(duì)列)。
  • 如果需求池(阻塞隊(duì)列)也滿了,但是這時(shí)候產(chǎn)品繼續(xù)提需求,怎么辦呢?那就請(qǐng)外包(非核心線程)來(lái)做。
  • 如果所有員工(最大線程數(shù)也滿了)都有需求在做了,那就執(zhí)行拒絕策略。
  • 如果外包員工把需求做完了,它經(jīng)過(guò)一段(keepAliveTime)空閑時(shí)間,就離開(kāi)公司了。

7.你們數(shù)據(jù)庫(kù)的高可用是怎么實(shí)現(xiàn)的?

高可用,即High Availability,是分布式系統(tǒng)架構(gòu)設(shè)計(jì)中必須考慮的因素之一,它通常是指,通過(guò)設(shè)計(jì)減少系統(tǒng)不能提供服務(wù)的時(shí)間。單機(jī)部署談不上高可用,因?yàn)?strong style="font-weight: border;color: #0e88eb;">單點(diǎn)故障問(wèn)題。高可用都是多個(gè)節(jié)點(diǎn)的,我們?cè)诳紤]MySQL數(shù)據(jù)庫(kù)的高可用的架構(gòu)時(shí),需要考慮這幾個(gè)方面:

  • 如果數(shù)據(jù)庫(kù)節(jié)點(diǎn)宕機(jī),需要盡快回復(fù),保證業(yè)務(wù)不受宕機(jī)影響。
  • 從數(shù)據(jù)庫(kù)節(jié)點(diǎn)的數(shù)據(jù),盡可能跟主節(jié)點(diǎn)數(shù)據(jù)實(shí)時(shí)保持一致,至少保證最終一致性。
  • 數(shù)據(jù)庫(kù)節(jié)點(diǎn)切換時(shí),數(shù)據(jù)不能缺失。

7.1 主從或主主半同步復(fù)制

用雙節(jié)點(diǎn)數(shù)據(jù)庫(kù),搭建單向或者雙向的半同步復(fù)制。架構(gòu)如下:

通常會(huì)和proxy、keepalived等第三方軟件同時(shí)使用,即可以用來(lái)監(jiān)控?cái)?shù)據(jù)庫(kù)的健康,又可以執(zhí)行一系列管理命令。如果主庫(kù)發(fā)生故障,切換到備庫(kù)后仍然可以繼續(xù)使用數(shù)據(jù)庫(kù)。

這種方案優(yōu)點(diǎn)是架構(gòu)、部署比較簡(jiǎn)單,主機(jī)宕機(jī)直接切換即可。缺點(diǎn)是完全依賴于半同步復(fù)制,半同步復(fù)制退化為異步復(fù)制,無(wú)法保證數(shù)據(jù)一致性;另外,還需要額外考慮haproxy、keepalived的高可用機(jī)制。

7.2 半同步復(fù)制優(yōu)化

半同步復(fù)制機(jī)制是可靠的,可以保證數(shù)據(jù)一致性的。但是如果網(wǎng)絡(luò)發(fā)生波動(dòng),半同步復(fù)制發(fā)生超時(shí)會(huì)切換為異步復(fù)制,異復(fù)制是無(wú)法保證數(shù)據(jù)的一致性的。因此,可以在半同復(fù)制的基礎(chǔ)上優(yōu)化一下,盡可能保證半同復(fù)制。如雙通道復(fù)制方案

  • 優(yōu)點(diǎn):這種方案架構(gòu)、部署也比較簡(jiǎn)單,主機(jī)宕機(jī)也是直接切換即可。比方案1的半同步復(fù)制,更能保證數(shù)據(jù)的一致性。
  • 缺點(diǎn):需要修改內(nèi)核源碼或者使用mysql通信協(xié)議,沒(méi)有從根本上解決數(shù)據(jù)一致性問(wèn)題。

7.3 高可用架構(gòu)優(yōu)化

保證高可用,可以把主從雙節(jié)點(diǎn)數(shù)據(jù)庫(kù)擴(kuò)展為數(shù)據(jù)庫(kù)集群。Zookeeper可以作為集群管理,它使用分布式算法保證集群數(shù)據(jù)的一致性,可以較好的避免網(wǎng)絡(luò)分區(qū)現(xiàn)象的產(chǎn)生。

  • 優(yōu)點(diǎn):保證了整個(gè)系統(tǒng)的高可用性,擴(kuò)展性也較好,可以擴(kuò)展為大規(guī)模集群。
  • 缺點(diǎn):數(shù)據(jù)一致性仍然依賴于原生的mysql半同步復(fù)制;引入Zookeeper使系統(tǒng)邏輯更復(fù)雜。

7.4 共享存儲(chǔ)

共享存儲(chǔ)實(shí)現(xiàn)了數(shù)據(jù)庫(kù)服務(wù)器和存儲(chǔ)設(shè)備的解耦,不同數(shù)據(jù)庫(kù)之間的數(shù)據(jù)同步不再依賴于MySQL的原生復(fù)制功能,而是通過(guò)磁盤(pán)數(shù)據(jù)同步的手段,來(lái)保證數(shù)據(jù)的一致性。

DRBD磁盤(pán)復(fù)制

DRBD是一個(gè)用軟件實(shí)現(xiàn)的、無(wú)共享的、服務(wù)器之間鏡像塊設(shè)備內(nèi)容的存儲(chǔ)復(fù)制解決方案。主要用于對(duì)服務(wù)器之間的磁盤(pán)、分區(qū)、邏輯卷等進(jìn)行數(shù)據(jù)鏡像,當(dāng)用戶將數(shù)據(jù)寫(xiě)入本地磁盤(pán)時(shí),還會(huì)將數(shù)據(jù)發(fā)送到網(wǎng)絡(luò)中另一臺(tái)主機(jī)的磁盤(pán)上,這樣的本地主機(jī)(主節(jié)點(diǎn))與遠(yuǎn)程主機(jī)(備節(jié)點(diǎn))的數(shù)據(jù)就可以保證實(shí)時(shí)同步。常用架構(gòu)如下:

當(dāng)本地主機(jī)出現(xiàn)問(wèn)題,遠(yuǎn)程主機(jī)上還保留著一份相同的數(shù)據(jù),即可以繼續(xù)使用,保證了數(shù)據(jù)的安全。

  • 優(yōu)點(diǎn):部署簡(jiǎn)單,價(jià)格合適,保證數(shù)據(jù)的強(qiáng)一致性
  • 缺點(diǎn):對(duì)IO性能影響較大,從庫(kù)不提供讀操作

7.5 分布式協(xié)議

分布式協(xié)議可以很好解決數(shù)據(jù)一致性問(wèn)題。常見(jiàn)的部署方案就是MySQL cluster,它是官方集群的部署方案,通過(guò)使用NDB存儲(chǔ)引擎實(shí)時(shí)備份冗余數(shù)據(jù),實(shí)現(xiàn)數(shù)據(jù)庫(kù)的高可用性和數(shù)據(jù)一致性。如下:

  • 優(yōu)點(diǎn):不依賴于第三方軟件,可以實(shí)現(xiàn)數(shù)據(jù)的強(qiáng)一致性;
  • 缺點(diǎn):配置較復(fù)雜;需要使用NDB儲(chǔ)存引擎;至少三節(jié)點(diǎn);

8. 讀寫(xiě)分離的場(chǎng)景下,怎么保證從數(shù)據(jù)庫(kù)讀到最新的數(shù)據(jù)?

數(shù)據(jù)庫(kù)讀寫(xiě)分離,主要解決高并發(fā)時(shí),提高系統(tǒng)的吞吐量。來(lái)看下讀寫(xiě)分離數(shù)據(jù)庫(kù)模型:

  • 寫(xiě)請(qǐng)求是直接寫(xiě)主庫(kù),然后同步數(shù)據(jù)到從庫(kù)
  • 讀請(qǐng)求一般直接讀從庫(kù),除飛強(qiáng)制讀主庫(kù)

在高并發(fā)場(chǎng)景或者網(wǎng)絡(luò)不佳的場(chǎng)景,如果存在較大的主從同步數(shù)據(jù)延遲,這時(shí)候讀請(qǐng)求去讀從庫(kù),就會(huì)讀到舊數(shù)據(jù)。這時(shí)候最簡(jiǎn)單暴力的方法,就是強(qiáng)制讀主庫(kù)。實(shí)際上可以使用緩存標(biāo)記法。

  • A發(fā)起寫(xiě)請(qǐng)求,更新主庫(kù)數(shù)據(jù),并在緩存中設(shè)置一個(gè)標(biāo)記,表示數(shù)據(jù)已更新,標(biāo)記格式為:userId+業(yè)務(wù)Id。
  • 設(shè)置此標(biāo)記,設(shè)置過(guò)期時(shí)間(估值為主庫(kù)和從庫(kù)同步延遲的時(shí)間)
  • B發(fā)起讀請(qǐng)求,先判斷此請(qǐng)求,在緩存中有沒(méi)有更新標(biāo)記。
  • 如果存在標(biāo)記,走主庫(kù);如果沒(méi)有,請(qǐng)求走從庫(kù)。

這個(gè)方案,解決了數(shù)據(jù)不一致問(wèn)題,但是每次請(qǐng)求都要先跟緩存打交道,會(huì)影響系統(tǒng)吞吐。

9. 如何保證MySQL數(shù)據(jù)不丟?

MySQL這種關(guān)系型數(shù)據(jù)庫(kù),是日志先行策略(Write-Ahead Logging),只要binlog和redo log日志能保證持久化到磁盤(pán),我們就能確保MySQL異常重啟后,數(shù)據(jù)不丟失。

binlog日志

binlog,又稱為二進(jìn)制日志,它會(huì)記錄數(shù)據(jù)庫(kù)執(zhí)行更改的所有操作,但是不包括查詢select等操作。一般用于恢復(fù)、復(fù)制等功能。它的格式有三種:statement、mixed和row

  • statement:每一條會(huì)修改數(shù)據(jù)的sql都會(huì)記錄到binlog中,不建議使用。
  • row:基于行的變更情況記錄,會(huì)記錄行更改前后的內(nèi)容,推薦使用。
  • mixed:混合statement和row兩個(gè)模式,不建議使用。

binlog 的寫(xiě)入機(jī)制是怎樣的呢?

事務(wù)執(zhí)行過(guò)程中,先把日志寫(xiě)到 binlog cache,事務(wù)提交的時(shí)候,再把binlog cache寫(xiě)到binlog文件中 。

系統(tǒng)為每個(gè)客戶端線程分配一個(gè)binlog cache,其大小值控制參數(shù)是binlog_cache_size。如果binlog cache的值超過(guò)閥值,就會(huì)臨時(shí)持久化到磁盤(pán)。當(dāng)事務(wù)提交的時(shí)候,再將 binlog cache中完整的事務(wù)持久化到磁盤(pán)中,并且清空binlog cache。

binlog寫(xiě)文件

binlog寫(xiě)文件分write和fsync兩個(gè)過(guò)程:

  • write:指把日志寫(xiě)到文件系統(tǒng)的page cache,并沒(méi)有把數(shù)據(jù)持久化到磁盤(pán),因此速度較快。
  • fsync,實(shí)際的寫(xiě)盤(pán)操作,即把數(shù)據(jù)持久化到磁盤(pán)。

write和fsync的寫(xiě)入時(shí)機(jī),是由變量sync_binlog控制的:

如果IO出現(xiàn)性能瓶頸,可以將sync_binlog設(shè)置成一個(gè)較大的值。比如設(shè)置為(100~1000)。但是,會(huì)存在數(shù)據(jù)丟失的風(fēng)險(xiǎn),當(dāng)主機(jī)異常重啟時(shí),會(huì)丟失N個(gè)最近提交的事務(wù)binlog。

redo log日志

redo log,又稱為重做日志文件,只記錄事務(wù)對(duì)數(shù)據(jù)頁(yè)做了哪些修改,它記錄的是數(shù)據(jù)修改之后的值。redo 有三種狀態(tài)

  • 物理上是在MySQL進(jìn)程內(nèi)存中,存在redo log buffer中,
  • 物理上在文件系統(tǒng)的page cache里,寫(xiě)到磁盤(pán) (write),但是還沒(méi)有持久化(fsync)。
  • 存在hard disk,已經(jīng)持久化到磁盤(pán)。

日志寫(xiě)到redo log buffer是很快的;wirte到page cache也很快,但是持久化到磁盤(pán)的速度就慢多了。

為了控制redo log的寫(xiě)入策略,Innodb根據(jù)innodb_flush_log_at_trx_commit參數(shù)不同的取值采用不同的策略,它有三種不同的取值:

    1. 設(shè)置為0時(shí),表示每次事務(wù)提交時(shí)都只是把redo log留在redo log buffer 中 ;

    2. 設(shè)置為1時(shí),表示每次事務(wù)提交時(shí)都將 redo log 直接持久化到磁盤(pán);

    3. 設(shè)置為2時(shí),表示每次事務(wù)提交時(shí)都只是把redo log 寫(xiě)到page cache。

三種模式下,0的性能最好,但是不安全,MySQL進(jìn)程一旦崩潰會(huì)導(dǎo)致丟失一秒的數(shù)據(jù)。1的安全性最高,但是對(duì)性能影響最大,2的話主要由操作系統(tǒng)自行控制刷磁盤(pán)的時(shí)間,如果僅僅是MySQL宕機(jī),對(duì)數(shù)據(jù)不會(huì)產(chǎn)生影響,如果是主機(jī)異常宕機(jī)了,同樣會(huì)丟失數(shù)據(jù)。

10. 高并發(fā)下如何設(shè)計(jì)秒殺系統(tǒng)?

設(shè)計(jì)一個(gè)秒殺系統(tǒng),需要考慮這些問(wèn)題:

如何解決這些問(wèn)題呢?

  • 頁(yè)面靜態(tài)化
  • 按鈕至灰控制
  • 服務(wù)單一職責(zé)
  • 秒殺鏈接加鹽
  • 限流
  • 分布式鎖
  • MQ異步處理
  • 限流&降級(jí)&熔斷

頁(yè)面靜態(tài)化

秒殺活動(dòng)的頁(yè)面,大多數(shù)內(nèi)容都是固定不變的,如商品名稱,商品圖片等等,可以對(duì)活動(dòng)頁(yè)面做靜態(tài)化處理,減少訪問(wèn)服務(wù)端的請(qǐng)求。秒殺用戶會(huì)分布在全國(guó)各地,有的在上海,有的在深圳,地域相差很遠(yuǎn),網(wǎng)速也各不相同。為了讓用戶最快訪問(wèn)到活動(dòng)頁(yè)面,可以使用CDN(Content Delivery Network,內(nèi)容分發(fā)網(wǎng)絡(luò))。CDN可以讓用戶就近獲取所需內(nèi)容。

按鈕至灰控制

秒殺活動(dòng)開(kāi)始前,按鈕一般需要置灰的。只有時(shí)間到了,才能變得可以點(diǎn)擊。這是防止,秒殺用戶在時(shí)間快到的前幾秒,瘋狂請(qǐng)求服務(wù)器,然后秒殺時(shí)間點(diǎn)還沒(méi)到,服務(wù)器就自己掛了。

服務(wù)單一職責(zé)

我們都知道微服務(wù)設(shè)計(jì)思想,也就是把各個(gè)功能模塊拆分,功能那個(gè)類似的放一起,再用分布式的部署方式。

如用戶登錄相關(guān)的,就設(shè)計(jì)個(gè)用戶服務(wù),訂單相關(guān)的就搞個(gè)訂單服務(wù),再到禮物相關(guān)的就搞個(gè)禮物服務(wù)等等。那么,秒殺相關(guān)的業(yè)務(wù)邏輯也可以放到一起,搞個(gè)秒殺服務(wù),單獨(dú)給它搞個(gè)秒殺數(shù)據(jù)庫(kù)。

服務(wù)單一職責(zé)有個(gè)好處:如果秒殺沒(méi)抗住高并發(fā)的壓力,秒殺庫(kù)崩了,服務(wù)掛了,也不會(huì)影響到系統(tǒng)的其他服務(wù)。

秒殺鏈接加鹽

鏈接如果明文暴露的話,會(huì)有人獲取到請(qǐng)求Url,提前秒殺了。因此,需要給秒殺鏈接加鹽。可以把URL動(dòng)態(tài)化,如通過(guò)MD5加密算法加密隨機(jī)的字符串去做url。

限流

一般有兩種方式限流:nginx限流和redis限流。

  • 為了防止某個(gè)用戶請(qǐng)求過(guò)于頻繁,我們可以對(duì)同一用戶限流
  • 為了防止黃牛模擬幾個(gè)用戶請(qǐng)求,我們可以對(duì)某個(gè)IP進(jìn)行限流
  • 為了防止有人使用代理,每次請(qǐng)求都更換IP請(qǐng)求,我們可以對(duì)接口進(jìn)行限流。
  • 為了防止瞬時(shí)過(guò)大的流量壓垮系統(tǒng),還可以使用阿里的Sentinel、Hystrix組件進(jìn)行限流。

分布式鎖

可以使用redis分布式鎖解決超賣(mài)問(wèn)題。

使用Redis的SET EX PX NX + 校驗(yàn)唯一隨機(jī)值,再刪除釋放鎖。

if(jedis.set(key_resource_id, uni_request_id, "NX""EX", 100s) == 1){ //加鎖
    try {
        do something  //業(yè)務(wù)處理
    }catch(){
  }
  finally {
       //判斷是不是當(dāng)前線程加的鎖,是才釋放
       if (uni_request_id.equals(jedis.get(key_resource_id))) {
        jedis.del(lockKey); //釋放鎖
        }
    }
}

在這里,判斷是不是當(dāng)前線程加的鎖和釋放鎖不是一個(gè)原子操作。如果調(diào)用jedis.del()釋放鎖的時(shí)候,可能這把鎖已經(jīng)不屬于當(dāng)前客戶端,會(huì)解除他人加的鎖。

為了更嚴(yán)謹(jǐn),一般也是用lua腳本代替。lua腳本如下:

if redis.call('get',KEYS[1]) == ARGV[1] then 
   return redis.call('del',KEYS[1]) 
else
   return 0
end;

MQ異步處理

如果瞬間流量特別大,可以使用消息隊(duì)列削峰,異步處理。用戶請(qǐng)求過(guò)來(lái)的時(shí)候,先放到消息隊(duì)列,再拿出來(lái)消費(fèi)。

限流&降級(jí)&熔斷

  • 限流,就是限制請(qǐng)求,防止過(guò)大的請(qǐng)求壓垮服務(wù)器;
  • 降級(jí),就是秒殺服務(wù)有問(wèn)題了,就降級(jí)處理,不要影響別的服務(wù);
  • 熔斷,服務(wù)有問(wèn)題就熔斷,一般熔斷降級(jí)是一起出現(xiàn)。

參考資料

[1]

五大常見(jiàn)的MySQL高可用方案: https://zhuanlan.zhihu.com/p/25960208

[2]

讀寫(xiě)分離數(shù)據(jù)庫(kù)如何保持?jǐn)?shù)據(jù)一致性: https://blog.csdn.net/baidu_36161424/article/details/107712388

[3]

《我們一起進(jìn)大廠》系列-秒殺系統(tǒng)設(shè)計(jì): https://juejin.cn/post/6844903999083151374#heading-11

[4]

《極客時(shí)間:MySQL45講實(shí)戰(zhàn)》: http://gk.link/a/10vPr

[5]

MySQL是如何保證不丟數(shù)據(jù)的(一): https://cloud.tencent.com/developer/article/1674625


求一鍵三連:點(diǎn)贊、轉(zhuǎn)發(fā)、在看

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

手機(jī)掃一掃分享

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

手機(jī)掃一掃分享

分享
舉報(bào)

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

国产秋霞理论久久久电影-婷婷色九月综合激情丁香-欧美在线观看乱妇视频-精品国avA久久久久久久-国产乱码精品一区二区三区亚洲人-欧美熟妇一区二区三区蜜桃视频 欧美精品| r四虎18| 久久久青草| 日韩无码精品视频| 97视频精品| 日韩午夜成人| 手机av网站| 好色综合| 波多一区| 无码一二三区| 好好日视频| 国模在线| 人人操狠狠操| 91偷拍视频| 秘蜜桃色一区二区三区在线观看 | 97人人操人人| 亚洲成人高清无码| 国产我不卡| 国产久久这里只有精品视频| 强伦人妻一区二区三区视频| 91综合视频| 玖玖色视频| 国产成人一区二区三区| 九色91PORNY国产| 黄色片视频网站| 福利一区在线观看| 大香蕉av在线| 大奶无码| 伊人三区| 亚洲1区2区| 欧美A片在线免费观看| 色色色777| 国产精品一区二区AV日韩在线| 欧美在线色图| 黑人精品XXX一区一二区| 91av免费观看| 高潮毛片| 国产熟妇搡BBBB搡BBBB毛片 | 人人妻人人爱人人| 91久久99久久91熟女精品| 免费看毛片的网站| 日本中文字幕在线观看| 大香蕉AV在线观看| 日产久久久| 一级黄色视频免费看| 热久久综合网站| 国产精品一区二区性色AV| 国产成人综合亚洲| 国产91白丝在一线播放| 亚洲日韩黄色| 免费看黃色AAAAAA片| 亚洲日皮| 视频一区乳奴| 京东一热本色道久久爱| 久久久久亚洲AV成人片乱码| 亚洲A片在线观看| 色婷婷老师| 国产黄色视频在线观看| 免费看一级黄色片| 亚洲精品系列| 操碰视频| 在线观看操逼视频| 中文字幕资源站| xxxx国产| 激情婷婷网| 伊人五月在线| 日本免费在线观看| 蜜桃久久精品成人无码AV| 91成人亚洲| 日韩欧美成人在线观看| 91麻豆精品国产91久久久久久久久| 欧美日韩精品一区二区| 亚洲国产成人无码a在线播放| 三级成人网站| 成年人免费视频网站| 日韩黄色免费网站| 樱桃av| 欧美一区二区三区不卡| 激情婷婷六月| 亚洲成人无码在线| 日逼逼| 亚洲一二三四区| 欧美日本国产| 欧美一级特黄A片免费看| 日本一级婬片A片免费播放一| 亚洲日韩一区二区| 安微妇搡BBBB搡BBBB| 草b网站| 国产三级片网址| 国产丝袜av| 国产女主播在线播放| 日韩精品成人无码| 亚洲成人在线无码| 人成视频免费观看| 欧美日韩免费| 五月开心激情网| 日本免费精品| 五月色视频| 国产成人AV在线| 日韩乱伦av| 嫩草国产在线| 亚洲无码视频在线观看高清| 高清无码免费观看| 日韩欧美操| 嫩BBB槡BBBB槡BBBB二一| 色哥网在线一区| 丰满人妻一区二区三区不卡二| 97超碰中文字幕| 亚洲天堂在线视频观看| 综综综综合网| 日本免费在线| 成人理伦A级A片在线论坛| 新亚洲天堂男子Av-| 黄色av免费网站| 香蕉成人网| 人人操国产| 小佟丽娅大战91哥| 大地影院资源官网| 操逼专区| 精品成人一区二区三区| 五月天综合在线| 国产婷婷久久Av免费高清| 91小视频| 三级毛片在线| 亚洲中文无码字幕| 91人妻人人澡人人添人人爽 | 亚洲欧洲免费| 日韩在线小电影| 中文字幕天堂在线| 国产精品在线观看| 成人做爰黄片视频免费| 啪啪人妻| 国产1区| 任我操在线视频| 黄色片成人| 欧美视频色| 日韩视频免费| 国产综合网站| 国产无码高清在线| 国产在线观看97| 午夜骚影| 日韩操逼AV| 大香蕉伊人在线视频| 日韩人妻无码电影| 天天躁狠狠躁夜躁2024| 艹逼在线观看| 久色入口| 欧美午夜三级| 日韩三级片在线视频| 午夜福利免费在线观看| 日本三级网站| 东京热视频网| 初尝人妻滑进去了莹莹视频| 欧美AA级毛片| 亚洲精品国产精品乱码不卡√香蕉| 中文字幕有码在线观看| 抽插视频免费| 欧美日韩免费视频| 亚洲成人一区二区在线观看| 色色色99| 黄色性视频| 五月丁香影院| 翔田千里中文字幕无码| 日韩在线欧美在线| 99自拍视频| 黄色一级大片在线免费看产| 熟女视频一区二区| 偷拍视频网站北条麻妃| v天堂在线| 久操视频在线免费观看| 欧美一区二区三区成人片在线| 7x7x7x人成免费观学生视频| 天天干在线观看视频| 国产精品天天AVJ精麻传媒| 人妻熟女字幕一区二区| 影音先锋成人在线资源| 久久久久中文字幕| 青青操国产乱伦| 亚洲精品无码中文字幕| 手机看片亚洲| 黄色一区二区三区| 中文在线观看视频| 色色网的五月天| 97免费在线视频| 国产在线久久久| 一区在线观看| 亚洲综合自拍| 黄片网站视频| 911香蕉视频| 一区二区三区四区五区| 亚洲色图第一页| 中文√在线天堂8| 欧美精品在线免费| 亚洲AV无码成人精品涩涩麻豆| 成人无码区免费A片在线软件| 黄色动漫在线免费观看| 久草一区二区三区| 中文字幕亚洲有码| 日韩在线视频免费播放| 波多野结衣国产区42部| 欧美一级片| 在线视频a| 污污污www精品国产网站| 高清无码在线观看免费| 臭小子晚上让你爽个够视频| 久久精品夜色噜噜亚洲A∨| 大香蕉在线75| 国产精品91在线| 久久综合操| 超碰97在线精品国产| 色播国产成人AV| 中文字幕高清AⅤ| 精品国产黄色| 综合激情av| 欧美老女人操逼群| 9久9久9久9久女女女女| 亚洲熟女一区二区| 免费福利视频网站| 色老板在线精品免费观看| 翔田千里被操120分钟| 日逼国产| 国产AV一区二区三区四区| 亚洲乱码日产精品BD在线观看| 999国产视频| 精品亚洲一区二区三区四区五区| 一级二级三级毛片| 国内无码视频| 亚洲激情国产| 大香蕉亚洲网| 中午字幕在线观看| 影音先锋一区二区| 亚洲十八禁| 国产欧美日韩在线观看| 欧美高清性XXXXHDvideosex| 男女啪啪动态图| 亚洲国产爱| 欧美va在线| 日B无码| 秘亚洲国产精品成人网站| 26uuu国产| 精品伊人久久| 欧美乱伦内射| 在线亚洲一区| 亚洲无码视频在线免费观看| 欧美在线视频a| 操美女久久| 久久久久久大香蕉| 伊人成人在线视频观看| 欧美色图网址| 国产一区二区00000视频| 国产精品乱伦| 超碰自拍私拍二区三区区| 甘肃WBBBB搡wBBBB| 日本免费高清视频在线观看一区| 奶大丰满一乱一视频一区二区三区在 | 色天堂在线观看视频| 可以免费看的黄色视频| 国产精品不卡在线| 91AV免费在线观看| 麻豆一区在线观看| 60分钟上大床又黄又爽| 国产成人免费做爰视频| 北条麻妃无码一区二区| 亚洲综合在线网| 777免费视频| 日本乱伦中文字幕| 专区无日本视频高清8| 亚洲成人精品在线| 国产一级a一级a免费视频| 日韩在线观看视频网站| Japanese在线观看| 操操网| 中文日韩字幕| 影音先锋亚洲资源| 精品无码人妻| 大香蕉av一区二区三区在线观看 | 成人A片在线播放| 伊人婷婷久久| 蜜臀网在线观看| 香蕉午夜视频| 天天爽天天爽夜夜爽毛片| 北条麻妃毛片| 欧美亚洲日韩国产| 色婷婷一区二区| 婷婷午夜精品久久久久久性色AV| 国产成人精品AA毛片| 色婷婷久久综合久色| 青青草无码成人AV片| 中文字幕免费AV| 亚洲AV无码精品岛国| 人妻操逼视频| 日韩爆乳一区二区三区| 日韩成人三级| 青春草在线| 麻豆乱婬一区二区三区| 99青青草| 日本在线视频不卡| 人与禽一级A片一区二区三区| 国产又猛又黄又爽| 精品人妻一区二区蜜桃视频| www.91麻豆| 内射视频网站| 欧美黄色免费| 亚洲国产成人视频| 中文字幕乱码中文乱码91| 大香蕉免费网| 日韩无码电| 青娱乐99| 欧美韩日高清精彩视频| 99热在线观看精品| 91欧美精品成人综合在线观看| 天堂v视频| 亚洲免费观看高清完整版在线观| 西西444www无码精品| 九色自拍| 午夜视频99| 久久久永久免费视频| 国产裸体网站| 无码AⅤ一区二区三区| 91视频精品| 在线观看视频日韩| 亚洲中文中出| 免费中文字幕AV| 免费一级无码婬片A片APP直播| 老司机狠狠干| 国产v亚洲| 日韩视频――中文字幕| 五月丁香伊人| 三级片日本在线| 免费国产乱伦| 久久国际精品| 国产精品成人AV在线| 国产V精品| 尻屄视频免费| 欧美Aⅴ| 91av电影| 亚洲五月激情| 日本成人高清视频| 久久综合电影| 国产免费黄色av| 高清无码不卡AV| 亚洲精品女人| 欧美一级黃色A片免费看小优视频 无码人妻精品一区二区三千菊电影 | 日本伊人大香蕉| 超碰精品| 人妖和人妖互交性XXXX视频| 撒尿BBw搡BBwBBw| 豆花成人视频| 茄子av| www.三级片| 五月网站| 少妇二区| 3d动漫精品一区二区三区在线观看 | 中国黄色一级A片| 艹逼在线观看| 欧美激情综合色综合啪啪五月| 99久久99久久99久久久99国产 | 激情深爱| 99美女精品视频| 色色激情网| 中文字幕免费高清在线观看| 黄色免费a级片一级片| 中文字幕五码| 亚洲成人精品在线观看| 成人国产精品秘欧美高清| aaaaaa在线观看免费高清| 亚洲精品高清无码| 四川BBB搡BBB爽爽爽欧美| 在线免费看黄网站| 亚洲日韩AV无码专区影院| 18精品爽视频| 色老板最新网址| 中文字幕的色| 一级特黄妇女高潮AA片免费播放| A片在线免费看| 欧美51精品| 青草视频在线免费观看| 综合色国产精品欧美在线| 新BBWBBWBBWBBW| 天天操综合| 女人的天堂网| 中国无码视频| 欧美国产日韩综合在线观看170 | 日本一区二区视频在线观看| 日本特黄AA片免费视频| AV成人| 国产成人精品无码区在线| 亚洲热视频| 久久日av| 岛国av免费看| 欧美美女日逼视频| 无码人妻一区二区三区免水牛视频| 日韩人妻精品中文字幕| 少婦揉BBBB揉BBBB揉| 黄片免费观看网站| 亚洲无遮挡| 日本親子亂子倫XXXX50路| 亚洲a视频在线| 玖玖资源站中文字幕| 丹麦电影《下午》| aⅴ在线| 免费在线黄片| 中文字幕高清无码在线| 亚洲日韩视频| 先锋影音资源AV| 亚洲操逼视频| 中文字幕一区二区三区在线观看| 亚洲色欲色欲www在线成人网| 久久精品视频在线免费观看| 亚洲成人三级| 黄片www.| 国产性爱网址| 狼人综合视频| 91av成人| 江苏妇搡BBBB搡BBBB-百度| 亚洲无码系列| 亚洲手机在线播放| 欧美一区二区在线| 精品无码一区二区三区在线| 亚洲在线视频观看| 国产一区二三区| 免费黄色av| 四川少妇搡bbw搡bbbb| 影音先锋自拍| 不卡a12| 中国老太卖婬HD播放| 婷婷99狠狠躁天天| 91av天堂| 色片在线| 青娱乐一级无码| 午夜看黄| 日韩激情在线观看| 人人狠狠综合婷婷| 日韩无码操逼视频| 日本精品在线观看视频| 91免费视频观看| 亚洲视频在线观看网站| AAA黄片| 欧美激情区| 一区二区三区国产视频| 香蕉成人网站| 在线观看一区| 久久久久久久久国产精品| 欧美黄片区| 天天弄天天操| 中文字幕av高清片,中文在线观看| 日本在线视频一区二区| 国产一区2区| 西西人体WW大胆无码| 大香蕉国产在线视频| 韩国中文字幕HD久久精品| 色婷婷亚洲婷婷| 波多野结衣无码网站| 日韩在线观看中文字幕| 日本精品视频| 欧洲亚洲视频| 456成人| 五月丁香六月激情| 国产亚洲欧美精品综合在线| 污污污污污www在线观看优势| 乌克兰毛片| 国产成人无码Av片在线公司| 美女啪啪网站| 暗呦网一区二区三区| 成人久久综合| 亚洲AV综合色区无码国产播放| 亚洲精品日韩无码| 十八女人高潮A片免费| 欧美视频在线免费| 亚洲性爱中文字幕| 国产主播中文字幕| 亚洲精品成人无码熟妇在线 | 三级无码av| 丁香五月色| 久久精品一二三| 久久大伊人| 免费无码国产在线观看快色| 欧美搡BBBB搡BBB| 操逼地址| 免费射精一二三区| www.91n| 永久免费AV| 人操人| 国产一级A片免费视频| 国产成人精品免高潮在线观看| 欧美footjob高跟脚交| 国产成人在线免费视频| 亚洲.无码.制服.日韩.中文字幕 | 日韩性生活| 久久精品免费| 日韩狠狠| www三级片| 日韩在线免费看| 夜夜骑婷婷91| 成人性爱AV| 国产作爱| 53岁露大奶熟女偷情贴吧| 自拍第一页| 中文字幕AV在线播放| 日韩黄色无码视频| 老太婆擦BBBB撩BBBB| 强开小嫩苞毛片一二三区| 黄色视频免费在线观看| 黄色福利在线观看| 污污污污污www网站免费观看 | 精品黄色毛片| 无码超碰| 欧美福利| 国产精品粉嫩福利在线| 在线观看日韩欧美| 山东乱子伦视频国产| 日韩三级AV在线观看| 秋霞A片| 国产一区二区成人久久919色| 四川BBB嫩BBBB爽BBBB| 内射网站在线观看| 亚州精品国产精品乱码不99勇敢 | 六月天婷婷| 麻豆AV在线播放| 三区在线观看| 亚洲色情在线播放| 综合色国产精品欧美在线| 中文字幕1区| 性插视频| 操逼电影网站| 三级片亚洲无码| 91亚洲精品国产成人| 欧美一区电影| 欧美成人图片视频在线| 婷婷色色五月天| 亚洲无码av在线播放| 大香蕉欧美在线| 日韩免费a| 天天日天天操天天爽| 思思热这里只有精品| 91大神久久| 影音先锋一区二区| 欧美国产综合| 91在线播放视频| 制服丝袜大香蕉| 欧美三级黄色| 91热久久| 国产精品污www在线观看| 国产精品一卡二卡三卡| 大地资源中文第二页导读内容 | 中文字幕无码A片久久| 亚洲天堂网2025| 日韩无码a| 亚洲免费观看高清完| 91在线免费播放| 91熟女偷情| 狠狠躁日日躁夜夜躁A片小说免费| 成人大片在线观看| 亚洲中文免费视频| 91高潮| 黄色在线免费| 亚洲中文无码在线| 成人大香蕉| 人妻无码91| 婷婷在线观看免费| 九热视频| 另类视频在线| 精品一区二区三区视频| 嫩BBB槡BBBB槡BBBB撒尿| 天堂中文资源在线| 婷婷五月天激情四射| 久久精品一区| 日韩免费A| 日p视频在线观看| 91久久无码一区人妻A片蜜桃| 蜜臀久久久99久久久久久久| 亚洲精品成AV人片天堂无码| 97自拍视频| 大香蕉操逼| 大秀91视频| 久草在线资源| 欧美MV日韩MV国产网站| 波多野结衣一二三区| 91精品电影| 亚洲在线视频播放| 日日干夜夜撸| 精品国产乱码久久久久夜深人妻 | 北条麻妃九九九在线视频| av在线天堂网| 青榴社区| 污污污www精品国产网站| 国产精品大香蕉| 亚洲一区日韩| 国产18水真多18精品| 97无码精品人妻一区二区三区| 九九九中文字幕| 婷婷日韩| 亚洲一二区| 91社区成人影院| 久久一区二区三区四区五区| 91豆花成人网站| 操b网站| 视频一区二区免费| 伊人大香蕉精品| 色999日韩| 国产成人免费在线观看| 中文字幕操逼网站| 黄色视频在线观看大全| 91熟女偷情| 亚洲av男人天堂| 91久久爽久久爽爽久久片| 麻豆艾秋MD0056在线| 国产青娱乐在线视频| 午夜天堂在线| 国产乱子伦-区二区三区四区| 超碰91在线观看| 最美孕交vivoestv另类| 影音先锋三级资源| 岛国无码av| 一级女婬片A片AAAA片| 中文字幕视频一区日日骚| 91亚洲国产成人精品一区二区三| 先锋资源av在线| 亚洲国产婷婷| 人人操人人干人人操| 欧美日屄视频| 成人肏屄视频| 日日干夜夜撸| 日韩精品一| 99在线看| 69视频网站| 日韩av中文字幕在线播放| 日韩码波多野结衣| 久久久久99精品成人网站| 成人网站在线| 无码一区二区区| 波多野结衣91| 免费亚洲视频| 亚洲国产一| 国产精品福利小视频| 天a堂8在线www| 激情开心站| 深夜福利av| 久草视频免费在线观看| 国产成人久久精品麻豆二区| 久久国产精品一区二区三区| JUY-579被丈夫的上司侵犯后的第7天,我 | 亚洲第1页| 3级片网站| 中文字幕超清在线观看| 无码精品人妻一区二区三区漫画| 国产乱码在线| 天天干天天日| 日韩综合精品中文字幕66| 老司机福利在线视频| 性九九九九九九| 苍井空二区| 丰满人妻一区二区三区精品高清 | www.豆花视频成人版| 日韩天堂在线| 欧美系列在线| 微拍福利一区| 国产美女操逼| 亚洲av资源在线观看| AV天堂无码| 久操综合视频在线| 97国产精品久久| 黄色免费片| 九九成人免费视频| 安徽妇搡BBBB搡BBBB| 撸撸视频| 国产成人AV免费无码| 影音先锋自拍| 激情五月天综合网| 国产黄A片免费网站免费| 人人操人人透| 做爰视频毛片下载蜜桃视频。| 操逼综合网| 最近日本中文字幕中文翻译歌词 | 亚洲精品aaa| www.17c嫩嫩草色蜜桃网站| 精品国产自| 特级艺体西西444WWw| 操你久久| 亚洲一区二区在线播放| 成人性生活视频| 无码一区二区高清| 亚洲无码福利| 久艹av| 在线观看亚洲天堂| 狠狠搞狠狠操| 日本乱伦中文字幕| 日日夜夜草| 国产黄色免费乱伦片| 久久久久久99| 精品一区二区久久久久久久网站| 亚洲aV影院| 杨门女将婬乱史1—6| 九九九在线观看视频| 一本久久精品一区二区| aaa在线免费视频| 国产精品一级a毛一级a| 2014亚洲天堂| 99ri精品| 精品国产自| 国产一级女婬乱免费看| 91丨熟女露脸| 中文字幕+乱码+中文乱码电影| 大香蕉av在线| 黄色动漫在线免费观看| 高清无码免费不卡| 黄片视频在线免费观看| 亚洲一级片| 強姦婬片A片AAA毛片Mⅴ| 2022黄片| 国产黄色视频免费| 日本中文字幕电影| 欧美一区二区三区四区视频| 激情男人网| 四季AV一区二区凹凸懂色桃花| 日本一区二区三区四区在线观看| 蜜桃人妻无码AV天堂二区| 欧美91视频| 欧美一级在线免费观看| 黄色a视频| 人妻p| 亚洲无线观看| 欧美城综合在线观看网| 亚洲vs无码蜜桃少妇| 亚洲无码少妇| 强伦轩一区二区三区在线观看| 亚洲欧美在线免费观看| 臭小子晚上让你爽个够视频| 日皮视频免费| 爽好紧别夹喷水欧美| 日韩大片免费观看| 久久思热国产| 刘玥一级婬片A片AAA| 抽插免费视频| 午夜激情四射| 日韩无码性爱| 好吊视频一区二区三区| 99九九99九九九99九他書對 | 99九九99九九九99九他書對 | 亚洲色成人网站www永久四虎| 秋霞欧美在线| 日B无码| 国产四区| 成人做爰A片AAA毛真人| 中国老太卖婬HD播放| 91久久精品国产91久久公交车| 五月天无码免费视频| 99re6热在线精品视频| 亚洲欧洲免费| 黄页网站在线免费观看| 国产精品久久久久久久久久| 北条麻妃在线精品| 欧美一级A片在免费看| 日韩有码中文字幕在线观看| 奇米一区| 99在线观看免费视频| 天天澡天天爽日日AV| 欧美一级电影| 97人人爽人人爽人人爽人人爽 | 欧美日韩亚洲天堂| 一级片视频在线观看| 日韩色在线| 无码区一区二区三区| 重庆美女揉BBBB搡BBBB| 天天看天天干| 日本黄色精品| 97午夜福利视频| 超碰成人AV| 欧美中文在线观看| 伊人久操| 青青三级片| 国产精品伊人| 日韩综合在线观看| 污视频在线看| 成人黄片免费看| 青青草资源站| 国产超级无码高清在线视频观看| 欧美精品乱码99久久蜜桃| 四虎无码视频| 中文字幕中文| www.亚洲| 精品国产91| 色婷婷天天操天天干| 亚洲免费观看A∨中文| 东京热一区二区三区四区| 久久久久久毛片| 这里都是精品| 国产91人| 婷婷丁香五月网| 可以免费看的AV| 18岁毛片| 少妇在线观看| 天天插综合| 国产精品毛片视频| 国产毛片网| 中文无码在线播放| 免费看黃色AAAAAA片| 欧美日逼超碰| 高潮91PORN蝌蚪九色| 黄色片视频免费| 大鸡吧在线视频| 欧美三级片在线观看| 国产欧美第一页| 欧洲美一区二区三区亚洲| 高H视频在线观看| 91人妻视频| 亚洲日本中文字幕在线观看| 欧美日韩亚洲综合| 久久免费视频观看| 小日本91在线观看| 人妻黄色| 91抽插| 精品国产国产没封| 操逼第二页| 国产精品S色| 亚洲日韩影院| 天天射综合| 玩弄大荫蒂视频| 精品无码久久久| 精品国产91乱码一区二区三区| 人妻丝袜蕾丝高跟双飞| www.a日逼| 一级a片在线播放| 久久久成人片| 无码网| 激情啪啪网站| 中文字幕AV第一页| 天天干中文字幕| 亚洲性爱在线| 女人18片毛片60分钟翻译| 99九九视频| 亚洲成人精品在线观看| 天天爽爽爽爽爽成人片| 91无码影院| AV中文字幕在线播放| 国产成人无码A片V99| 免费高清无码| 日本成人激情视频| 黄色成人在线观看视频| 天天操天天插| 91成人情欲影视网| 中文字幕免费av| 亚洲免费观看高清完整版在线| 中文字幕在线一区| 夜夜骑免费视频| 91香蕉网| 欧美三P囗交做爰XXXⅩ| 成人一二区| 成人精品一区日本无码网站suv| 一级特黄大片色| 日皮做爱视频网站| 欧美69成人| 国产aⅴ激情无码久久久无码| 黑人狂躁女人高潮视频| 国产成人秘免费观看一区二区三区| 成人一区二区在线| 欧美特大黄| 欧美三级网| 日韩中文字幕区| 人人干人人干人人干| 国产77777| 黄色av网| 自拍视频在线观看| 成人视频网站在线观看18| 一级a片在线播放| 91www| 久久午夜无码鲁丝片午夜精品偷窥 | 懂色AV无码中字幕一区| 成全在线观看高清的| 亚洲黄色av| 真人一级毛毛片| 亚洲小视频在线| 尹人香蕉久久| 欧美精品乱码99久久蜜桃| AV在线精品| 很色很黄的A片一| 大香蕉综合视频| 99精品免费视频| 无码人妻一区二区三区三| 男女一区二区三区| 91吴梦梦一区二区传媒| 超碰人人干| 中文字幕在线播放第一页| 亚洲免费成人视频| 强伦轩人妻一区二区三区70后| 蜜桃人妻无码AV天堂二区| 亚洲无码999| 内射自拍| 欧美福利在线观看| 国产日皮视频| 老司机午夜电影| 在线日韩AV| 国产成人无码A片V99| 在线免费观看av网站| 人人色视频| 五月天激情午夜福利| 国产欧美日韩视频| 国产香蕉精品视频| 久久午夜夜伦鲁鲁一区二区| 夜夜撸天天日|