日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

PD源码阅读系列:PD节点启动

發(fā)布時(shí)間:2023/12/16 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 PD源码阅读系列:PD节点启动 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

李雷,神州數(shù)碼武漢云基地,目前在研究TiDB的PD模塊。

在TiDB生態(tài)中,PD作為調(diào)度模塊,負(fù)責(zé)整個(gè)集群的調(diào)度以及保存整個(gè)集群的云信息。這篇文章將從PD的啟動(dòng)作為入手點(diǎn),簡(jiǎn)單剖析PD節(jié)點(diǎn)啟動(dòng)的步驟,了解PD啟動(dòng)的流程,學(xué)習(xí)PD讀取配置、啟動(dòng)日志和監(jiān)控、設(shè)置并啟動(dòng)PD節(jié)點(diǎn)服務(wù)并通過(guò)協(xié)程的方式監(jiān)聽(tīng)退出命令等知識(shí)點(diǎn)。

PD簡(jiǎn)介

Placement Driver (后續(xù)以 PD 簡(jiǎn)稱) 是 TiDB 里面全局中心總控節(jié)點(diǎn),它負(fù)責(zé)整個(gè)集群的調(diào)度,負(fù)責(zé)全局 ID 的生成,以及全局時(shí)間戳 TSO 的生成等。PD 還保存著整個(gè)集群 TiKV 的元信息,負(fù)責(zé)給 client 提供路由功能。

在架構(gòu)上面,PD 所有的數(shù)據(jù)都是通過(guò) TiKV 主動(dòng)上報(bào)獲知的。同時(shí),PD 對(duì)整個(gè) TiKV 集群的調(diào)度等操作,也只會(huì)在 TiKV 發(fā)送 heartbeat 命令的結(jié)果里面返回相關(guān)的命令,讓 TiKV 自行去處理,而不是主動(dòng)去給 TiKV 發(fā)命令。這樣設(shè)計(jì)上面就非常簡(jiǎn)單,我們完全可以認(rèn)為 PD 是一個(gè)無(wú)狀態(tài)的服務(wù)(當(dāng)然,PD 仍然會(huì)將一些信息持久化到 etcd),所有的操作都是被動(dòng)觸發(fā),即使 PD 掛掉,新選出的 PD leader 也能立刻對(duì)外服務(wù),無(wú)需考慮任何之前的中間狀態(tài)。

Why PD?

根據(jù)上文,我們了解到PD節(jié)點(diǎn)的主要作用在于元數(shù)據(jù)的存儲(chǔ)以及TiKV節(jié)點(diǎn)的調(diào)度。那么我們不禁要問(wèn),為什么需要PD?

當(dāng)我們只有一個(gè)TiKV時(shí),那就根本不需要調(diào)度,因?yàn)閿?shù)據(jù)只可能存在于這一臺(tái)機(jī)器上,各種客戶端也只可能與這一個(gè)TiKV節(jié)點(diǎn)進(jìn)行交互。在分布式存儲(chǔ)領(lǐng)域,這種情況不可能一直持續(xù)下去,因?yàn)閿?shù)據(jù)的增量一定會(huì)超過(guò)這臺(tái)機(jī)器的存儲(chǔ)極限。到時(shí)我們必須將部分?jǐn)?shù)據(jù)遷移到其他機(jī)器上去。

了解過(guò)TiKV的同學(xué)們都知道TiKV使用range的方式將數(shù)據(jù)進(jìn)行切分。我們使用Region來(lái)表示一個(gè)數(shù)據(jù)range。每個(gè)Region都有多個(gè)副本Peer。通常為了數(shù)據(jù)可靠性,我們至少使用三個(gè)副本。

最開(kāi)始系統(tǒng)初始化的時(shí)候,我們只有一個(gè)Region。當(dāng)數(shù)據(jù)量持續(xù)增大而超過(guò)Region設(shè)置的最大Size(64MB)閾值時(shí),Region就會(huì)分裂,生成兩個(gè)新的Region。Region是調(diào)度TiKV的基本單位。當(dāng)我們新增一個(gè)TiKV的時(shí)候,PD就會(huì)將原來(lái)TiKV中的一些Region調(diào)度到這個(gè)新增的TiKV中去。這樣就能保證整個(gè)數(shù)據(jù)均衡的分布在TiKV集群上面。因?yàn)橐粋€(gè)Region通常是64MB,將一個(gè)Region從一個(gè)TiKV移動(dòng)到另一個(gè)TiKV的過(guò)程中,數(shù)據(jù)量變更其實(shí)不大。所以可以直接使用Region的數(shù)量來(lái)大概的做數(shù)據(jù)的平衡。

上面我們對(duì)TiKV數(shù)據(jù)的調(diào)度做了簡(jiǎn)單的介紹,但是實(shí)際的情況要比這個(gè)復(fù)雜很多。我們不僅要考慮數(shù)據(jù)的均衡,也要考慮計(jì)算的均衡。這樣才能保證整個(gè)TiKV集群更快更好的對(duì)外提供服務(wù)。因?yàn)門(mén)iKV使用的是Raft一致性算法。Raft有一個(gè)強(qiáng)約束就是為了保證線性一致性。所有的讀寫(xiě)都必須通過(guò)Leader發(fā)起。假設(shè)現(xiàn)在有三個(gè)TiKV,如果幾乎所有的Leader都集中在某一個(gè)TiKV上,那么會(huì)造成這個(gè)TiKV成為性能瓶頸,最好的做法是Leader也能夠均衡地分布在不同的TiKV上,這樣整個(gè)系統(tǒng)都能對(duì)外提供服務(wù)。

總的來(lái)說(shuō),在分布式存儲(chǔ)TiKV中,調(diào)度任務(wù)及其重要。這關(guān)乎系統(tǒng)向外提供服務(wù)的質(zhì)量。我們必須同時(shí)考慮存儲(chǔ)Storage和計(jì)算Leader等資源。所以我們得出一個(gè)觀點(diǎn),分布式存儲(chǔ)系統(tǒng)是必須要有一個(gè)調(diào)度模塊的。那么,調(diào)度模塊的實(shí)現(xiàn)形式是什么樣的?今天我們都知道了在TIDB生態(tài)中,有PD作為T(mén)iKV集群的調(diào)度模塊。那么為什么需要單獨(dú)拿出來(lái)作為一個(gè)項(xiàng)目?我認(rèn)為這樣做的最大好處就是降低耦合。TiDB生態(tài)中,TiDB server負(fù)責(zé)查詢,TiKV負(fù)責(zé)存儲(chǔ),PD則負(fù)責(zé)TiKV調(diào)度。如果將調(diào)度模塊寫(xiě)在TiDB或者TiKV里,當(dāng)TiDB或TiKV擴(kuò)展節(jié)點(diǎn)時(shí),PD也會(huì)跟著1:1地?cái)U(kuò)展。這將會(huì)造成一定的性能浪費(fèi),因?yàn)槲覀儗?shí)際上并不一定需要與TIDB或TiKV節(jié)點(diǎn)數(shù)一樣多的PD模塊。另外也可以說(shuō)這是遵守了軟件設(shè)計(jì)原則中的單一職責(zé)原則。

PD相關(guān)技術(shù)

  • Go:PD完全由Go開(kāi)發(fā)。Go語(yǔ)言簡(jiǎn)單易用,天生支持高并發(fā)。PD源碼體積很小,不到5M,但是性能相當(dāng)不錯(cuò)。
  • Etcd:分布式系統(tǒng)中最關(guān)鍵的分布式可靠鍵值存儲(chǔ)。PD將Region meta信息持久化在etcd,以保證切換 PD Leader 節(jié)點(diǎn)后能快速繼續(xù)提供 Region 路由服務(wù)。
  • Raft:Etcd實(shí)現(xiàn)數(shù)據(jù)可靠性靠的是分布式一致性算法Raft。
  • Prometheus:PD集成Prometheus來(lái)達(dá)到指標(biāo)監(jiān)控的目的。每個(gè)PD啟動(dòng)時(shí)都會(huì)配置Prometheus,將系統(tǒng)運(yùn)行的指標(biāo)傳給Prometheus。
  • Zap Logger:Go系統(tǒng)庫(kù)自帶的日志包存在一定的性能與功能缺乏。PD集成了由 Ubder 開(kāi)源的高性能日志框架Zap Logger來(lái)提高PD的性能。
  • TOML:PD配置文件書(shū)寫(xiě)語(yǔ)法,由前GitHub CEO, Tom Preston-Werner,于2013年創(chuàng)建。其目標(biāo)是成為一個(gè)小規(guī)模的易于使用的語(yǔ)義化配置文件格式。

PD本地編譯運(yùn)行

PD代碼開(kāi)源,可以從github獲取:

https://github.com/tikv/pd

源碼閱讀需要在本地編譯運(yùn)行PD源碼。首先需要準(zhǔn)備PD所需環(huán)境。我本地運(yùn)行的是Win10 系統(tǒng),安裝了如下依賴:go 1.14.7 + cmake3 + mingw64,使用intellij idea本地編譯運(yùn)行。

這里需要注意的是,我一開(kāi)始安裝的 go 版本為1.15。結(jié)果每次本地編譯都會(huì)報(bào)類似于內(nèi)存泄漏等問(wèn)題。解決方法是降低 go 的版本。我降到1.14版本后即可正常編譯運(yùn)行PD server。

還有另外一點(diǎn)是PD源碼有個(gè)ui模塊中文件 embedded_assets_rewriter 可能會(huì)報(bào)錯(cuò),報(bào)錯(cuò)原因是未識(shí)別的變量。我在相關(guān)論壇提問(wèn)也沒(méi)得到回應(yīng),于是只能選擇注釋掉未聲明的變量并將相關(guān)方法返回nil。處理完這些問(wèn)題就能跑起PD server來(lái)了。

PD源碼閱讀

今天將解讀pd源碼的開(kāi)始部分:啟動(dòng)一個(gè)pd server。

閱讀從根目錄下的cmd/pd-server/main.go開(kāi)始,由此展開(kāi)。

一、讀取配置

PD的配置信息有三個(gè)來(lái)源。分別是Config對(duì)象默認(rèn)配置,外部配置文件和命令行參數(shù)。它們的優(yōu)先級(jí)分別是命令行參數(shù) > 外部配置文件 > 默認(rèn)。下面第一塊代碼就是讀取配置的兩行代碼。config.NewConfig()獲取到系統(tǒng)的默認(rèn)配置。系統(tǒng)默認(rèn)配置文件在/conf/config.toml里。在Config 的結(jié)構(gòu)體中,可以利用第三方包 http://github.com/BurntSushi/toml 直接讀取 toml 格式的配置文件中的值。下面的第二段代碼就是config結(jié)構(gòu)體中使用 toml 工具包讀取 toml 格式的配置文件中的值來(lái)設(shè)置屬性的默認(rèn)值的部分代碼。通過(guò) toml:"配置文件中屬性名"的形式獲取到配置的值。從而設(shè)置為該屬性的默認(rèn)值。Parse 方法讀取命令行參數(shù)并將參數(shù)設(shè)置到config對(duì)象中去。

讀取配置

cfg := config.NewConfig()err := cfg.Parse(os.Args[1:])

Config結(jié)構(gòu)體部分代碼

type Config struct {flagSet *flag.FlagSetVersion bool `json:"-"`ConfigCheck bool `json:"-"`ClientUrls string`toml:"client-urls" json:"client-urls"`PeerUrls string`toml:"peer-urls" json:"peer-urls"`AdvertiseClientUrlsstring `toml:"advertise-client-urls"json:"advertise-client-urls"`AdvertisePeerUrls string`toml:"advertise-peer-urls" json:"advertise-peer-urls"`}

創(chuàng)建默認(rèn)配置對(duì)象cfg時(shí),NewConfig 方法內(nèi)部還將利用 flagSet 對(duì)象對(duì)cfg各個(gè)屬性做屬性說(shuō)明。對(duì)于bool類型的屬性將調(diào)用flagSet的BoolVar方法對(duì)其進(jìn)行說(shuō)明。具體過(guò)程會(huì)聲明該變量的簡(jiǎn)稱,值以及用處。同理 StringVar 就是對(duì) string 類型的變量做說(shuō)明的。

下面的示例代碼就展示了 BoolVar 和 StringVar 的內(nèi)部邏輯以及使用這些方法對(duì)config對(duì)象的屬性做說(shuō)明的過(guò)程。我們可以看到使用 StringVar 對(duì)屬性 configFile 做了說(shuō)明。其簡(jiǎn)稱為 config 。它的值默認(rèn)為 "" 。它的用處就是作為配置文件。同理,BoolVar也對(duì)bool類型的屬性 ConfigCheck 做了說(shuō)明。說(shuō)明它是檢查配置文件的合規(guī)性的。

New Config()

cfg := &Config{}cfg.flagSet =flag.NewFlagSet("pd", flag.ContinueOnError)fs := cfg.flagSetfs.StringVar(&cfg.configFile,"config", "", "config file")fs.BoolVar(&cfg.ConfigCheck,"config-check", false, "check config file validity and exit")func (f *FlagSet) BoolVar(p *bool, namestring, value bool, usage string) {f.Var(newBoolValue(value, p), name, usage)}func (f *FlagSet) StringVar(p *string,name string, value string, usage string) {f.Var(newStringValue(value, p), name, usage)}

以上是默認(rèn)配置的一些處理操作。接下來(lái)講講獲取外部配置文件和命令行中的配置信息。

PD 在啟動(dòng)時(shí)可以攜帶外部的配置文件對(duì) PD 的屬性做配置。具體操作是用命令行啟動(dòng) PD 時(shí),使用命令行參數(shù) --config 指明外部配置文件的位置。例如 --config "/usr/local/config.toml" 將指定 PD 啟動(dòng)時(shí)讀取本機(jī)文件目錄 /usr/local/config.toml 的配置文件。

接著我們?cè)诖a層面看一下這個(gè)過(guò)程:

首先在 main 方法中獲取命令行參數(shù)信息。這一步驟是通過(guò) go 的os包支持的。通過(guò) os.Args獲取命令行參數(shù)數(shù)組。然后傳入到 config 對(duì)象的 Parse 方法中。

接著在 Parse 方法中,調(diào)用 flagSet 的 Parse 方法將命令行參數(shù)都設(shè)置到config對(duì)象對(duì)應(yīng)的屬性上。在隨后的代碼中將判斷 config 對(duì)象中 configFile 屬性是否非空。因?yàn)檫@個(gè)屬性默認(rèn)是空字符串,只有設(shè)置了值,才能進(jìn)行下一步讀取指定路徑的配置文件。當(dāng)它的值非空時(shí)將調(diào)用 configFromFile 方法讀取指定目錄的配置文件,讀取的結(jié)果放到 toml.MetaData 對(duì)象中。然后將這個(gè)對(duì)象傳入到 config 對(duì)象的Adjust 方法中用于調(diào)整 config 的各個(gè)屬性值。

PD 的配置文件描述全面的資料可以參考:

PD 配置文件描述

命令行參數(shù)描述可以參考:

PD 配置參數(shù)

讀取完配置后,Parse 方法將返回err對(duì)象以幫助判斷Parse過(guò)程是否成功。err 如果是 nil,則說(shuō)明Parse是沒(méi)有問(wèn)題的。如果是ErrHelp,則說(shuō)明輸入命令行的是-h或者是-help。輸入這個(gè)命令說(shuō)明我只是想查看pd啟動(dòng)時(shí)可以攜帶哪些配置參數(shù)而不是直接啟動(dòng)pd。所以在這個(gè)case下將調(diào)用 exit 方法退出啟動(dòng)程序。除此之外,其他情況就是parse過(guò)程錯(cuò)誤,輸出錯(cuò)誤提示信息。

Parse結(jié)果檢查

switch errors.Cause(err) { case nil: case flag.ErrHelp:exit(0) default:log.Fatal("parse cmd flags error", errs.ZapError(errs.ErrParseFlags)) }

二、啟動(dòng)logger服務(wù)并打印PD Server的信息和警告信息

PD使用zap Logger替代go原生的log組件以此來(lái)提高整體運(yùn)行的性能。我們都知道go原生的logger使用起來(lái)十分簡(jiǎn)單。我們通過(guò)設(shè)置任何io.writer作為日志記錄輸出并向其發(fā)送要寫(xiě)入的日志就行。但是簡(jiǎn)單歸簡(jiǎn)單,原生logger也有很多不足的地方。例如:僅限基本日志級(jí)別、只有一個(gè)Print選項(xiàng)、Fatal日志通過(guò)調(diào)用os.Exit(1)來(lái)結(jié)束程序、Panic日志在寫(xiě)入日志消息之后拋出一個(gè)panic、不提供日志切割的能力、缺乏日志格式化能力等。綜合這些原因,pd使用uber開(kāi)源的日志框架zap logger來(lái)替換原生的logger。zap logger有兩個(gè)優(yōu)點(diǎn)。其一是提供了結(jié)構(gòu)化日志記錄和printf風(fēng)格的日志記錄。其二是它非常的快。關(guān)于zap logger高性能的設(shè)計(jì)思路可以參考它家github地址:

https://github.com/uber-go/zap#performance

下方代碼就是PD創(chuàng)建zap logger來(lái)替換原生logger的過(guò)程:

首先調(diào)用cfg對(duì)象的 SetupLogger 方法設(shè)置cfg的logger和logProps屬性。在SetupLogger 方法內(nèi)部,使用PingCAP自家的log包里的初始化方法 InitLogger獲得zap.logger 和ZapProperties對(duì)象并將二者分別賦給cfg的 logger 和 logProps屬性。接著使用 ReplaceGlobals替換全局的logger。然后刷新緩存,最后使用 InitLogger 初始化zap logger。

logger組件設(shè)置啟動(dòng)好之后,打印PD信息和警告。

啟動(dòng)logger:

err = cfg.SetupLogger() if err == nil {log.ReplaceGlobals(cfg.GetZapLogger(), cfg.GetZapLogProperties()) } else {log.Fatal("initialize logger error", errs.ZapError(err)) } // Flushing any buffered log entries defer log.Sync()// The old logger err = logutil.InitLogger(&cfg.Log) if err != nil {log.Fatal("initialize logger error", errs.ZapError(err)) }server.LogPDInfo()for _, msg := range cfg.WarningMsgs {log.Warn(msg) }

三、Prometheus監(jiān)控

在 main 方法中調(diào)用 EnableHandlingTimeHistogram 。在 PD 啟動(dòng)時(shí),會(huì)初始化一個(gè)默認(rèn)的 ServerMetrics 對(duì)象來(lái)記錄 PD server服務(wù)運(yùn)行的指標(biāo)。默認(rèn)不開(kāi)啟 Histogram metrics 這個(gè)指標(biāo)監(jiān)控。因?yàn)檫@個(gè)指標(biāo)監(jiān)控耗費(fèi)性能較高。在源碼的注釋中也說(shuō)明,開(kāi)啟 Histogram metrics 監(jiān)控可能會(huì)耗費(fèi)較大性能。如果機(jī)器性能有限,那么可以選擇不開(kāi)啟。

接著就會(huì)調(diào)用 Push 方法將指標(biāo)發(fā)送到 Prometheus 的推送網(wǎng)關(guān)上。具體推送方法是 prometheusPushClinet。在該方法內(nèi)首先構(gòu)造推送者對(duì)象pusher。pusher的構(gòu)造使用了建造者模式。首先使用推送的地址和任務(wù)初始化pusher,添加了為其添加了收集器以及分組標(biāo)簽。

Prometheus監(jiān)控:

grpcprometheus.EnableHandlingTimeHistogram()metricutil.Push(&cfg.Metric) Gatherer(prometheus.DefaultGatherer).Grouping("instance", instanceName())for {err := pusher.Push()if err != nil {log.Error("could not push metrics to Prometheus Pushgateway", errs.ZapError(errs.ErrPrometheusPushMetrics, err))}time.Sleep(interval)} }

四、動(dòng)態(tài)添加節(jié)點(diǎn)

PD使用 PrepareJoinCluster 方法將當(dāng)前節(jié)點(diǎn) Join指定的集群當(dāng)中去并且在Join成功后持久化Join配置,當(dāng)PD節(jié)點(diǎn)宕機(jī)后重啟時(shí),讀取本地配置就能快速重新加入集群。

下面簡(jiǎn)單聊聊從PD節(jié)點(diǎn)首次加入到一個(gè)集群以及PD停機(jī)再次加入集群的情況。

當(dāng)PD節(jié)點(diǎn)首次Join某集群時(shí),我們進(jìn)入PrepareJoinCluster 方法,攜帶的參數(shù)時(shí)cfg,也就是PD的配置對(duì)象。當(dāng)我們想Join某個(gè)集群時(shí),首先保證目標(biāo)集群能夠正常工作。在啟動(dòng)PD節(jié)點(diǎn)時(shí)。命令行攜帶參數(shù)--join="target-urls",target-urls就是目標(biāo)集群里任意PD的advertise-clinet-url。PD啟動(dòng)時(shí)通過(guò)os.Args讀取這些額外參數(shù)并設(shè)置到cfg對(duì)象中去。首先要做基本的差錯(cuò)檢測(cè),排除Join信息錯(cuò)誤的情況。然后嘗試讀取本地保存的Join信息。我們是第一次Join到一個(gè)陌生的集群,這些信息以及目錄還沒(méi)有創(chuàng)建。接下來(lái)將創(chuàng)建一個(gè)etcd的client,創(chuàng)建時(shí)傳入Join信息、TLS憑證配置、超時(shí)限制等信息。下一步,ListEtcdMember 方法列出目標(biāo)集群所有的etcd成員。隨后判斷當(dāng)前PD節(jié)點(diǎn)是否與集群中的節(jié)點(diǎn)重名。重名則無(wú)法加入集群,直接退出。如果滿足條件名字不沖突。隨后使用 AddEtcdMenber方法嘗試加入集群。結(jié)果將返回到類型為*clientv3.MenberAddResponse的對(duì)象中。隨后再次調(diào)用 ListEtcdMenber 獲取最新的etcd集群成員信息并對(duì)集群情況進(jìn)行驗(yàn)證,并將最新的集群信息更新到cfg對(duì)象中。最后將節(jié)點(diǎn)配置信息保存到本地。

當(dāng)PD停機(jī)再次重啟時(shí),直接讀取本地文件獲取集群信息并加入到集群中去。

Join節(jié)點(diǎn):

err = join.PrepareJoinCluster(cfg) if err != nil {log.Fatal("join meet error", errs.ZapError(err)) }

五、創(chuàng)建并運(yùn)行PD Server

這一步驟主要做兩件事情。第一個(gè)就是創(chuàng)建PD Server并運(yùn)行。第二就是監(jiān)聽(tīng)退出信號(hào)。

首先使用 CreateServer 方法創(chuàng)建Server對(duì)象并且傳入所需要的參數(shù):上下文對(duì)象ctx、配置cfg、服務(wù)數(shù)組servcieBuilders。接著調(diào)用server的Run方法啟動(dòng)Server。在Run方法內(nèi),首先會(huì)通過(guò)協(xié)程開(kāi)啟監(jiān)控。隨后開(kāi)啟etcd和Server服務(wù)。最后通過(guò)Server的startServerLoop方法使得服務(wù)處于不斷運(yùn)行的狀態(tài)而不退出。

另外一個(gè)部分就是監(jiān)聽(tīng)退出信號(hào)。通過(guò)監(jiān)聽(tīng)四種信號(hào)來(lái)判斷是否要中止服務(wù)。這四種信號(hào)及含義如下表所示。監(jiān)聽(tīng)程序通過(guò)協(xié)程的方式監(jiān)聽(tīng)退出信號(hào),一旦監(jiān)聽(tīng)到退出信號(hào),調(diào)用cancle方法即會(huì)向ctx對(duì)象的Done通道發(fā)送消息。Done通道一旦接收到消息運(yùn)行Server的線程就會(huì)退出。接著就會(huì)打印退出信息返回退出碼。

信號(hào)值動(dòng)作說(shuō)明
SIGHUP1Term終端控制進(jìn)程結(jié)束(終端連接斷開(kāi))
SIGHINT2Term用戶發(fā)送INTR字符(Ctrl+C)觸發(fā)
SIGTERM15Term結(jié)束程序(可以被捕獲、阻塞或忽略)
SIGQUIT3Core用戶發(fā)送QUIT字符(Ctrl+/)觸發(fā)

創(chuàng)建 PD Server:

ctx, cancel := context.WithCancel(context.Background()) serviceBuilders := []server.HandlerBuilder{api.NewHandler, swaggerserver.NewHandler, autoscaling.NewHandler} serviceBuilders = append(serviceBuilders, dashboard.GetServiceBuilders()...) svr, err := server.CreateServer(ctx, cfg, serviceBuilders...) if err != nil {log.Fatal("create server failed", errs.ZapError(err)) }

總的來(lái)說(shuō),PD節(jié)點(diǎn)的啟動(dòng)會(huì)經(jīng)歷讀取配置、設(shè)置logger、啟動(dòng)prometheus監(jiān)控、join集群、啟動(dòng)server、監(jiān)聽(tīng)退出命令后退出等步驟。

我們今天主要了解了PD節(jié)點(diǎn)啟動(dòng)的基本步驟,也了解到PD對(duì)zap logger和Prometheus等中間件的集成使用。最后學(xué)習(xí)了使用協(xié)程監(jiān)聽(tīng)退出命令。

整個(gè)PD的啟動(dòng)流程用下面流程圖表示一下:

?本篇文章只是對(duì)PD節(jié)點(diǎn)啟動(dòng)做的一個(gè)粗略的解讀,有些地方可能存在錯(cuò)誤希望有真知灼見(jiàn)的大神能不吝賜教,指出我的問(wèn)題,多多交流。

總結(jié)

以上是生活随笔為你收集整理的PD源码阅读系列:PD节点启动的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

国产精品久久嫩一区二区免费 | 色干综合 | 9999在线观看 | 亚洲精品美女在线观看播放 | 国产精品videoxxxx | 国产精品 999| 亚洲精品美女久久久久 | 视频91| 久久高清国产 | av日韩av| 韩国一区二区在线观看 | 精品福利网 | 91在线色 | 国产亚洲精品久久网站 | 久久精品在线 | 四虎影视精品永久在线观看 | 日韩精品免费在线观看视频 | 色91在线 | 人人爽久久久噜噜噜电影 | 91精品国产91久久久久福利 | 国产精品视频内 | 9999在线观看 | 久久久麻豆精品一区二区 | 亚洲h视频在线 | 国产对白av| 五月天开心 | 久久免费成人精品视频 | 欧美日韩中文字幕视频 | 日韩手机在线观看 | 夜夜操天天干 | 国产毛片久久久 | 久久久午夜精品理论片中文字幕 | 91精品一| 日本公妇在线观看 | 91视频这里只有精品 | 日韩欧美黄色网址 | 精品久久久久久亚洲综合网站 | 在线观看国产www | 午夜精品一区二区三区四区 | 九九热av | 亚洲精品在线免费播放 | 中午字幕在线观看 | www.天天干| 精品久久网| 黄色午夜 | 久久国产精品99国产 | 日韩av网页 | 国产福利在线免费观看 | 久久婷亚洲五月一区天天躁 | 欧美在线观看视频 | 午夜视频欧美 | 天天干夜夜擦 | 久久精品美女视频 | 精品久久久久久亚洲综合网站 | 九色精品免费永久在线 | 国产精品24小时在线观看 | 久久中文网 | 69精品视频在线观看 | 麻豆91网站| 日韩色视频在线观看 | 97色在线视频 | 天天操天天操天天操天天 | 日韩免费一区二区 | 国产99亚洲 | 欧美最猛性xxx| 久久国产精品二国产精品中国洋人 | 在线视频一二三 | 97爱爱爱 | 在线视频app | 久草视频在线资源站 | 片黄色毛片黄色毛片 | 三上悠亚在线免费 | 午夜av电影院 | 欧美性护士 | 精品国产一区二区三区四区vr | 国产精品自在线拍国产 | 精品国产网址 | 国产亚洲精品中文字幕 | 粉嫩av一区二区三区免费 | 夜夜夜草| 91桃色在线观看视频 | www.亚洲精品 | 激情丁香久久 | 日本黄色免费播放 | 国产不卡一区二区视频 | 中文字幕乱在线伦视频中文字幕乱码在线 | av成人黄色| 免费看的黄色网 | 不卡中文字幕在线 | 天天舔天天射天天操 | 日韩电影精品 | 精品视频一区在线观看 | 婷婷午夜天 | 国产精品久久久久久久久久久久午夜 | 欧美性网站 | 欧美日韩午夜在线 | 91在线中文 | 五月开心婷婷 | 韩国精品一区二区三区六区色诱 | 久久一二三四 | 国产精品永久在线观看 | 国内精品视频在线 | 天天在线免费视频 | 日本特黄特色aaa大片免费 | 中文字幕 国产专区 | 成人免费观看电影 | 欧美精品中文字幕亚洲专区 | 久草亚洲视频 | 奇米影视777四色米奇影院 | 国产色网站 | 伊人官网| 日韩69视频 | 久久视频网址 | 又黄又色又爽 | 玖玖在线视频观看 | 99视频一区二区 | 开心激情综合网 | 特级毛片aaa | 九九热在线免费观看 | 精品视频123区在线观看 | 天堂网在线视频 | 国产亚洲成av片在线观看 | 99热超碰 | 国产伦精品一区二区三区在线 | 久久字幕精品一区 | 五月婷婷六月综合 | 亚洲高清不卡av | 日本久久不卡视频 | 国产午夜精品一区二区三区嫩草 | 国产精品高 | 99久久精品免费看国产麻豆 | 超碰在线观看97 | 激情欧美网 | 欧美日韩视频一区二区 | 国内精品久久久久影院男同志 | 久久蜜臀av | 正在播放 国产精品 | 天天干天天色2020 | 97超碰在线播放 | 一区二区免费不卡在线 | 免费看一级特黄a大片 | a在线视频v视频 | 久久久毛片 | 国产专区精品 | 国产a精品 | 91精选在线观看 | 福利片视频区 | 日韩精品视 | 久久96| 亚洲九九爱| 国产在线观看中文字幕 | 国产精品视频大全 | 97超碰人人澡人人爱学生 | 2021国产在线视频 | 国产69精品久久99不卡的观看体验 | 亚洲国产一区二区精品专区 | 国产福利91精品 | 99精品观看 | 免费观看v片在线观看 | 久久噜噜少妇网站 | 国产黄色精品网站 | 青青草视频精品 | 国产成人在线看 | 玖玖视频在线 | 日韩黄色软件 | 九九免费在线观看 | 欧美看片 | 天天操天天操天天操天天操 | 国产专区精品 | 亚洲电影一级黄 | 日韩视频免费在线观看 | 九热在线| 欧美 日韩 久久 | 日韩.com | 狠狠色2019综合网 | 色国产精品 | 午夜电影 电影 | 最近中文字幕在线 | 在线观看国产日韩欧美 | 麻豆91网站 | 日韩免费中文字幕 | 成片人卡1卡2卡3手机免费看 | 午夜影院三级 | 日韩高清激情 | 98久久 | 99热在线这里只有精品 | 四虎国产 | 99免费| 成人欧美一区二区三区在线观看 | 中文字幕色站 | 国产精品嫩草影院9 | 黄色软件视频大全免费下载 | 色wwww| 精油按摩av | 国产一二区视频 | 天天干天天射天天插 | 亚洲一区二区三区毛片 | 国产婷婷色 | 日韩免费观看一区二区 | 日韩精品在线视频 | 国产精品永久 | av大片网址 | 日本最新中文字幕 | 亚洲成人黄色在线 | 在线看v片 | 久久久久久美女 | 中文字幕乱码在线播放 | 国内精品久久久精品电影院 | 亚洲精品国产精品国自产观看 | 综合久久久久久 | 国产91影院| 成人黄色小说网 | 国产呻吟在线 | 久久久国产精品网站 | 亚洲精品永久免费视频 | 另类五月激情 | 亚洲国产中文字幕在线视频综合 | 高潮久久久久久久久 | av一本久道久久波多野结衣 | www.亚洲精品视频 | 在线观看 国产 | 最近日本中文字幕 | 国产在线中文 | 最近中文字幕国语免费高清6 | 国产中年夫妇高潮精品视频 | 国产一区二区在线免费 | 久草在线网址 | 成人免费观看电影 | 亚洲精品高清视频在线观看 | 成人毛片在线观看视频 | 99热.com| 三级视频国产 | 色综合天天视频在线观看 | 人人爽人人爽人人爽学生一级 | 国产日本高清 | 国产视频精品视频 | 日本特黄一级 | 国产视频精选 | 亚洲人精品午夜 | 91黄色免费网站 | 国产精品免费久久久久影院仙踪林 | 久久久久久久精 | 500部大龄熟乱视频使用方法 | 91电影福利 | 精品女同一区二区三区在线观看 | 成人 国产 在线 | 视频在线观看一区 | 国产午夜精品久久久久久久久久 | 超碰成人网 | 一区在线免费观看 | 黄色av成人在线观看 | 91精品国产自产在线观看 | 国产福利精品视频 | 丁香视频五月 | 免费看的黄色的网站 | avwww在线观看| 日韩av三区 | 天天爱天天射 | 亚洲乱码在线观看 | 福利视频入口 | 国产美女黄网站免费 | 午夜的福利 | 97偷拍在线视频 | 欧美少妇18p | 日韩大片在线免费观看 | 亚洲国产精品电影在线观看 | 中文av日韩 | 91麻豆操| 欧美一级电影免费观看 | 国产在线专区 | 天天色综合天天 | 一级免费黄视频 | 久久一区二区三区国产精品 | 亚洲天堂精品视频在线观看 | 欧洲精品视频一区 | 日韩av偷拍 | 视频国产一区二区三区 | 久久久网 | 日韩三区在线观看 | 欧美日韩在线免费视频 | 欧洲精品视频一区二区 | 99热只有精品在线观看 | 日韩高清观看 | 欧美极品少妇xxxxⅹ欧美极品少妇xxxx亚洲精品 | 色网免费观看 | 一区二区三区在线免费播放 | 免费在线观看午夜视频 | www.久久91 | 久久免费在线观看 | 国产精品精品久久久久久 | 国产精品日韩欧美 | 婷婷丁香五 | 日韩精品最新在线观看 | 久久精品欧美一区二区三区麻豆 | 天天操天天操天天操天天操天天操天天操 | 精品福利视频在线观看 | 天天操天天操天天操天天操 | 精品久久久久久久久久久久久久久久 | 黄色avwww | 久久精品伊人 | 婷婷网在线 | 天天做天天干 | 国产欧美精品一区二区三区 | 一区二区精品在线 | 天天操天天色天天射 | 日本在线精品视频 | 99久久日韩精品免费热麻豆美女 | 久久av中文字幕片 | 看全黄大色黄大片 | 国产中文字幕一区 | 99激情网 | 91久久精品一区二区二区 | 欧美一二三视频 | 免费影视大全推荐 | 国产婷婷久久 | 日韩国产欧美在线视频 | 亚洲无吗av | 一区二区三区国 | 久久伦理网 | 在线观看视频亚洲 | 91精品国自产在线观看 | 久久久久福利视频 | 天天射天天做 | 久久久久亚洲最大xxxx | 国产精品美女网站 | 99色免费视频 | 久久成人国产精品入口 | 中文字幕乱码亚洲精品一区 | 中文字幕 国产视频 | 亚洲一二三久久 | 亚洲第一区在线观看 | 久久精品女人毛片国产 | 久久影视网 | 蜜臀aⅴ精品一区二区三区 久久视屏网 | 福利一区二区三区四区 | 最新超碰在线 | 日韩成人邪恶影片 | 国产亚洲精品久久久久久电影 | 丁香综合五月 | 麻豆视频免费网站 | 欧美日韩中文在线观看 | 天天射天天射天天 | 中文字幕日本在线 | 色欧美综合 | 亚洲黄色在线播放 | 国产精品毛片一区视频播 | www.看片网站 | 亚洲天堂va| 九热精品| 日本韩国在线不卡 | 女人魂免费观看 | 国产123区在线观看 国产精品麻豆91 | 亚洲成人精品在线观看 | 探花视频在线版播放免费观看 | 成年人毛片在线观看 | 亚洲欧美视频一区二区三区 | www.福利| av导航福利| 亚洲国产精品成人综合 | 在线免费观看黄网站 | 久久午夜电影 | 国产乱码精品一区二区蜜臀 | 99热这里精品 | 久草爱视频 | 天天曰天天| 91亚洲精品视频 | 国产69精品久久久久99尤 | 午夜资源站 | 精品国产亚洲一区二区麻豆 | 欧美国产日韩在线视频 | 91精品国产99久久久久久久 | 色婷婷在线观看视频 | 中文字幕精品一区 | 国产精品k频道 | 这里只有精品视频在线 | 99精品免费久久久久久久久日本 | 婷婷 综合 色 | 成人福利在线观看 | 日韩电影一区二区三区 | 最新一区二区三区 | 在线а√天堂中文官网 | 久久精品黄 | 99精品免费久久久久久日本 | 欧美日韩中文字幕综合视频 | 亚洲精品乱码久久久久久写真 | 国产视频色 | 亚洲天堂网站视频 | 久久婷婷网 | 久久久亚洲麻豆日韩精品一区三区 | 亚洲精品中文在线观看 | 超碰97在线资源 | 亚洲国产午夜精品 | 久久呀| 狠狠色狠狠色综合日日小说 | 国产精品一区二区三区四 | 中文字幕av播放 | 99精品黄色片免费大全 | 中文国产在线观看 | 国产亚洲精品久久久久久 | 97天堂 | 精品国产乱码久久久久久1区2匹 | av亚洲产国偷v产偷v自拍小说 | 人人藻人人澡人人爽 | 天天操网址 | 69人人| 国产一区二区三区免费观看视频 | 欧美福利片在线观看 | 国产精品一区二区在线播放 | 国产成人一区二区啪在线观看 | 国产成人精品久 | 一本色道久久精品 | av千婊在线免费观看 | 国产一级一级国产 | 黄色av网站在线观看 | 一本之道乱码区 | 日韩精品短视频 | 欧美日韩免费观看一区=区三区 | 久久精品二区 | 992tv成人免费看片 | 99热国产精品 | 97在线视频免费看 | 美女啪啪图片 | 国产一级做a爱片久久毛片a | 久久国产精品久久精品国产演员表 | 久久精品国产免费 | 国产精品第一页在线观看 | 天天插夜夜操 | 久久人人爽爽人人爽人人片av | 国产日韩精品一区二区三区 | 在线久久 | 91麻豆精品91久久久久同性 | 天天躁日日躁狠狠 | 综合色狠狠 | 亚洲va欧美va人人爽春色影视 | 久久精品欧美一区二区三区麻豆 | 国产精品成人久久久久久久 | 五月婷婷久久综合 | 亚洲成av人片在线观看香蕉 | 免费三级av | 免费在线观看亚洲视频 | 中文字幕精品在线 | 99亚洲精品在线 | 欧洲精品视频一区二区 | 欧美精品一区在线 | 亚洲欧洲日韩在线观看 | 四虎影视成人精品 | 国产精品精 | 99精品视频免费观看视频 | 在线观看免费国产小视频 | 丁香五婷| 免费污片 | 日本久久久影视 | 成人精品99 | 久久免费观看少妇a级毛片 久久久久成人免费 | 国际精品久久久 | 欧美特一级片 | 天天综合网在线观看 | 天天色天天干天天 | 亚洲天天综合 | 国产精品久久久久婷婷 | 精品免费观看 | 欧美日韩另类在线观看 | 97精品在线视频 | 99热九九这里只有精品10 | aaaaaa毛片 | 中文字幕在线观看视频一区 | 国产精品自产拍在线观看蜜 | 成人一区电影 | 欧美日韩另类视频 | av激情五月 | 黄色小网站在线 | 成人在线你懂得 | 久久久久美女 | 国产在线精品播放 | 国产精品午夜8888 | av在线播放一区二区三区 | 中国美女一级看片 | a资源在线 | 国产一区二区在线精品 | 国产1区2区3区精品美女 | 久久久久久激情 | 激情五月在线 | 91激情视频在线观看 | 欧美做受69 | 天天爽网站 | 人人人爽 | 欧美日韩国产伦理 | 国产黄在线观看 | 久草综合在线观看 | 黄网站色视频免费观看 | 欧美日韩国产一区二区三区 | 伊人五月综合 | 久章草在线 | 国产一级久久 | 国产一区二区三区四区大秀 | 日韩av在线资源 | 成人在线免费观看视视频 | 五月婷在线视频 | 国产精品一区免费看8c0m | 人人模人人爽 | 久久人人爽人人爽人人 | 911香蕉 | 国产香蕉久久精品综合网 | av女优中文字幕在线观看 | 日韩高清在线一区二区三区 | 亚洲91中文字幕无线码三区 | 超碰在线免费福利 | 久久福利国产 | 成人一区二区三区在线 | 日韩精品中文字幕av | 亚洲涩涩涩涩涩涩 | 国产精品 9999 | 成人小视频在线 | 在线观看日本韩国电影 | 狠狠狠的干 | 天天综合视频在线观看 | 亚洲精品欧美精品 | 激情久久伊人 | 免费中文字幕视频 | 国产精品毛片一区 | 婷婷激情五月综合 | 久久久激情视频 | 成人免费xxx在线观看 | av网址在线播放 | 在线免费性生活片 | 免费激情在线电影 | 91在线精品秘密一区二区 | www国产亚洲精品 | 日日爽天天操 | 成年人在线观看免费视频 | 精品你懂的 | 日韩欧美在线中文字幕 | 毛片基地黄久久久久久天堂 | 亚洲伦理电影在线 | 91一区啪爱嗯打偷拍欧美 | 国产成人福利在线 | 国产一二三区av | 国产精品亚洲片夜色在线 | 91久久爱热色涩涩 | 欧美日韩国产一区二区三区 | 日韩午夜大片 | 福利视频入口 | 911国产| 亚洲天天做 | 国产精品自在欧美一区 | 丁香av| 激情六月婷婷久久 | 欧美日韩国产二区三区 | 天天亚洲综合 | 久久国产亚洲精品 | 亚洲精品久久久久久久不卡四虎 | 激情丁香 | 国产精品ⅴa有声小说 | 在线视频精品 | 亚洲精品一区二区18漫画 | 国产一区视频免费在线观看 | 久久9999久久免费精品国产 | 97视频在线观看播放 | 亚洲成人资源在线观看 | 欧美一级片在线观看视频 | 中文字幕第一页在线播放 | 黄色高清视频在线观看 | 日韩丝袜在线观看 | 久久精品一区二区国产 | 久草国产在线 | 亚洲国产高清视频 | 亚洲天堂精品 | 伊人五月天av | 国产视频在线观看一区 | 天天射综合网站 | 中文永久字幕 | 麻豆91精品91久久久 | 一区二区精品久久 | 国产a高清 | 特黄特黄的视频 | 黄网站免费看 | 亚洲 av网站| 欧美激情视频一区二区三区 | 日韩v在线91成人自拍 | 91最新视频在线观看 | 亚洲欧洲av| 在线成人中文字幕 | 国产成人久久精品 | www.久艹 | 成人app在线播放 | 日韩影视精品 | 久久爱资源网 | 激情五月***国产精品 | 国产精品久久久久久久久久直播 | 国产成人精品久久二区二区 | 五月婷婷综合在线 | 日韩在线观看的 | 久久久久久99精品 | 国产一二三区av | 高清一区二区三区av | 国产亚洲一级高清 | 久久久久久视频 | 日韩激情片在线观看 | 国产黄大片在线观看 | 波多野结衣在线观看视频 | 中文字幕在线播放第一页 | 久久电影网站中文字幕 | 久久久精品国产免费观看一区二区 | 久久av电影 | 欧美精品小视频 | 天天干天天天 | 中文字幕欧美日韩va免费视频 | 日韩大片在线看 | 98精品国产自产在线观看 | 亚洲精品日韩在线观看 | 日韩美在线观看 | 日本久久中文 | 日本在线精品视频 | 成人免费大片黄在线播放 | 最新日韩视频在线观看 | 特黄免费av | 91麻豆精品国产自产在线游戏 | 亚洲成av人片在线观看香蕉 | 五月激情丁香图片 | 色天天久久 | 婷婷丁香狠狠爱 | 亚洲精品视频网站在线观看 | 天天色天天操天天爽 | 免费一级日韩欧美性大片 | 久久精品久久久久久久 | av亚洲产国偷v产偷v自拍小说 | 视频在线观看亚洲 | 国产视频一区二区三区在线 | 91福利影院在线观看 | 欧美日韩视频在线观看一区二区 | 久久成人国产精品免费软件 | 麻豆影音先锋 | 成人性生交大片免费观看网站 | 欧美日韩不卡一区 | 又大又硬又黄又爽视频在线观看 | 美女性爽视频国产免费app | 五月激情婷婷丁香 | 国产精品久久久久久欧美 | 久久久99精品免费观看 | 国产精品一区二区久久国产 | 国产精品成人一区二区 | 麻豆一二三精选视频 | 久久亚洲综合国产精品99麻豆的功能介绍 | 成人欧美在线 | 国产二区免费视频 | 欧美 日韩 国产 成人 在线 | 国产精品区在线观看 | 外国av网 | 久久99国产视频 | 中文字幕在线精品 | 色婷婷综合久久久久中文字幕1 | 国产成人免费在线 | 国产精品久久伊人 | 香蕉久久久久 | 免费看一级 | 久久人人爽人人爽人人 | 808电影 | 欧美精品乱码久久久久久按摩 | 中文字幕资源网 | av7777777| 免费日p视频 | 欧美福利视频 | 精品国偷自产国产一区 | 国产黄色片网站 | 久久国产精品系列 | 999视频在线播放 | 亚洲午夜精品久久久久久久久久久久 | 天天干天天插 | 国内精品视频在线播放 | 国产一线天在线观看 | 一性一交视频 | 91麻豆精品国产91久久久使用方法 | 91视频久久久久久 | 91手机在线看片 | 91视频在线| 亚洲精品66 | 日韩视频免费在线 | 久久这里只有精品首页 | 色狠狠操 | 亚洲自拍偷拍色图 | 成人黄色av网站 | avhd高清在线谜片 | 天天干天天射天天爽 | 国产不卡免费视频 | 一本一本久久a久久精品综合 | 欧美韩国在线 | 国产精品中文字幕av | 国产精品1024 | 色婷婷狠| 国产一区二区手机在线观看 | 97国产大学生情侣白嫩酒店 | 婷婷综合成人 | av直接看| 国产乱对白刺激视频在线观看女王 | 中文字幕在线观看网址 | 久久久久久久久久久网站 | 成人久久免费视频 | 欧洲精品码一区二区三区免费看 | 久久免费av电影 | 欧美a级片网站 | 国产精品1区2区3区 久久免费视频7 | av看片网 | 天天在线视频色 | 亚洲综合最新在线 | 天天操综合 | 久久一区二区三区日韩 | 久久天堂亚洲 | 在线精品亚洲一区二区 | 国产小视频你懂的 | 在线岛国av| 精品影院一区二区久久久 | 欧美一区二区精品在线 | 国产精品丝袜在线 | 99精品视频在线观看免费 | 狠狠网站 | 日韩天堂在线观看 | 97网在线观看 | 国产主播大尺度精品福利免费 | 亚洲国产综合在线 | 欧美一区二区精美视频 | 国产福利免费在线观看 | 国产精品一区一区三区 | 日韩精品高清不卡 | 精品久久国产一区 | 日韩免费视频播放 | 99欧美| 欧美一区二区三区四区夜夜大片 | 干天天| 亚洲电影一区二区 | 91污在线观看 | 色多多视频在线 | 久久精品国产亚洲aⅴ | 亚洲国产美女精品久久久久∴ | 黄色三级在线观看 | 91传媒免费在线观看 | 国产原创中文在线 | 国产亚洲欧美在线视频 | 操操操天天操 | 亚洲专区 国产精品 | 中文国产字幕在线观看 | 色婷婷九月 | 夜夜操天天 | 精品国产诱惑 | 欧美日韩高清免费 | 亚洲另类在线视频 | 亚洲日本三级 | 成人国产精品久久久 | 欧美激情视频一区二区三区 | 久久精品国产第一区二区三区 | 日韩一级黄色片 | 国产一区在线观看视频 | 亚洲国产合集 | 亚洲精品网页 | 99免费在线 | 久久精品国产v日韩v亚洲 | 91精品啪在线观看国产81旧版 | 久久久久久电影 | 久久艹在线观看 | www.午夜| 亚洲一级黄色片 | 丁香午夜婷婷 | 99国产精品久久久久久久久久 | 曰韩在线| 超碰电影在线观看 | 久久激情久久 | 亚洲日日射 | 婷婷激情站 | 97av免费视频 | 天天躁日日| 9在线观看免费 | 亚洲视频分类 | 免费看特级毛片 | 亚洲日日射 | 久久精品艹 | 天天干,天天插 | 国产精品女人久久久 | 天天躁天天狠天天透 | 日韩久久久久久 | 久久精品久久久久 | av天天澡天天爽天天av | 中文字幕视频免费观看 | 亚洲国产日韩欧美 | 婷婷丁香色综合狠狠色 | 国产福利一区二区三区在线观看 | 日韩理论片在线观看 | 毛片基地黄久久久久久天堂 | 美女精品久久久 | 欧美日韩国产二区三区 | 香蕉在线视频观看 | 天天操婷婷 | 91在线你懂的 | 亚洲成人av片在线观看 | 不卡精品 | 碰天天操天天 | 国产日本亚洲高清 | 在线观看视频一区二区三区 | 日日碰狠狠添天天爽超碰97久久 | 国产精品日韩在线观看 | 天天搞天天干 | 国产麻豆精品在线观看 | 久久久黄视频 | 日韩久久片 | 午夜精品一区二区三区可下载 | 久久久久国产精品免费免费搜索 | 一区二区不卡 | 国产精品18久久久久久久久 | 91视频 - v11av | 久久综合九色综合网站 | 久久国产精品99久久久久久丝袜 | www在线观看视频 | 69精品人人人人 | 精品国产伦一区二区三区 | 欧美一区二区三区四区夜夜大片 | 久久人人爽爽人人爽人人片av | 久久久久久久久久久免费 | 69久久夜色精品国产69 | 成人免费精品 | 久草在线观看资源 | 97人人艹 | 亚洲精品免费在线观看视频 | 久久久福利影院 | 国产高清中文字幕 | 五月天六月丁香 | 久久精品综合一区 | 国产一级特黄电影 | 亚洲毛片在线观看. | 日韩一区二区三区不卡 | 天天操夜夜摸 | 成人欧美一区二区三区在线观看 | 国产精品99久久久久久久久久久久 | a精品视频 | 免费看wwwwwwwwwww的视频 久久久久久99精品 91中文字幕视频 | 天天爱天天操 | 免费看wwwwwwwwwww的视频 久久久久久99精品 91中文字幕视频 | 97国产人人 | 一区二区三区精品在线视频 | 91av视频在线播放 | 91麻豆精品国产自产在线 | 日韩国产精品久久 | av网在线观看 | 亚洲一区久久久 | 91看片在线 | 国产精品资源在线观看 | 久青草国产在线 | 久草在线高清视频 | 天天干天天干天天操 | 午夜久久福利 | 三上悠亚在线免费 | 国产精品久久久久久久免费大片 | 毛片一区二区 | 香蕉网在线观看 | 中文在线免费视频 | 狠狠色丁香久久婷婷综 | 日本在线观看中文字幕无线观看 | 在线国产91 | 色婷婷亚洲婷婷 | 欧美va天堂va视频va在线 | 三级视频片 | 九九在线视频 | 国产一二区视频 | 黄色影院在线免费观看 | www.久久com | 香蕉视频免费看 | 免费高清在线视频一区· | 99在线观看免费视频精品观看 | 国产美女精品视频 | 美女黄久久 | 亚洲精品在线免费播放 | 亚洲国产日韩精品 | 久久亚洲精品国产亚洲老地址 | 天天躁日日躁狠狠躁av中文 | 少妇资源站 | 日本最新中文字幕 | 日本最新高清不卡中文字幕 | 一区二区欧美在线观看 | 久久人人爽 | 国产精华国产精品 | 少妇按摩av| 天堂在线v | 最近中文字幕大全 | 中文字幕精品一区二区精品 | 天天躁日日| 日韩影视在线 | 亚洲一区视频在线播放 | 91精品国产自产在线观看 | www.久久久.cum | 黄色三级免费 | 国产日产在线观看 | 亚洲一区二区三区四区精品 | 视频成人 | 精品一区精品二区 | 日韩亚洲精品电影 | 综合网久久 | 韩国精品一区二区三区六区色诱 | 99色99| 免费观看成年人视频 | 97精品久久人人爽人人爽 | 欧美成天堂网地址 | 99爱爱| 久久久精品 一区二区三区 国产99视频在线观看 | 久久99电影 | 亚洲精品视频一二三 | 免费在线色 | 成年美女黄网站色大片免费看 | av视屏在线 | 美女视频一区二区 | 欧美亚洲国产一卡 | 国产成人在线免费观看 | 色综合久久天天 | 成人av免费看| 国产免费a | 亚洲欧美成aⅴ人在线观看 四虎在线观看 | 91亚洲国产| 一区二区精品在线观看 | 久久a级片| 亚洲精品乱码久久 | 久草久草视频 | www.av免费 | 免费在线观看成人 | 美女黄色网在线播放 | 亚洲精品啊啊啊 | 二区三区在线视频 | 国产91影视 | 天天做天天爱天天爽综合网 | 欧洲亚洲精品 | 日日夜夜天天综合 | 久久久国产精品成人免费 | 国产精品久久久久三级 | 特黄免费av| 99在线视频免费观看 | 99国产在线观看 | 亚洲精品久久久久中文字幕二区 | 最近日本字幕mv免费观看在线 | 天天综合网入口 | 中文电影网 | 精品久久久久久久久中文字幕 | 97成人在线观看视频 | 天天射天天色天天干 | 日韩 精品 一区 国产 麻豆 | 亚洲激情影院 | 91视频在线免费下载 | 成人观看 | 国产999精品久久久影片官网 | 精品国产99国产精品 | 操操日| 西西大胆免费视频 | 国产美女在线精品免费观看 | 亚洲精品综合在线 | 日韩乱色精品一区二区 | 欧美精品在线观看免费 | 亚洲九九| 夜夜高潮夜夜爽国产伦精品 | 婷婷日 | 国产区在线看 | 国产中的精品av小宝探花 | 99精品热 | 精品视频资源站 | 久久er99热精品一区二区三区 | 国产精品毛片久久 | 欧美午夜理伦三级在线观看 | 天天爽夜夜爽精品视频婷婷 | 亚洲天堂自拍视频 | 日韩高清一区二区 | 伊人午夜视频 | 日韩大片在线播放 | 亚洲精品国产高清 | 日本亚洲国产 | a爱爱视频 | 国产亚洲情侣一区二区无 | 天天草天天干 | 日韩av电影中文字幕在线观看 | 国内揄拍国产精品 | 国产精品丝袜久久久久久久不卡 | 成人免费视频免费观看 | 黄色视屏免费在线观看 | 亚洲最新合集 | 亚洲精品免费观看视频 | 夜夜夜夜猛噜噜噜噜噜初音未来 | 国产精品九九热 | 国产一区二区精品 | 久久亚洲综合国产精品99麻豆的功能介绍 | 天天色综合久久 | 97超碰人人模人人人爽人人爱 | 中文字幕日韩高清 | 国产视频欧美视频 | 日韩精品一区二区免费视频 | 亚洲不卡av一区二区三区 | 国产很黄很色的视频 | 国产又粗又猛又爽又黄的视频免费 | 亚洲精品伦理在线 | 综合网欧美 | 久久国产精品成人免费浪潮 | 亚洲欧美日韩一区二区三区在线观看 | 黄色成人av网址 | 婷婷丁香久久五月婷婷 | 黄色软件大全网站 | 在线亚洲成人 | 依人成人综合网 |