• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    基于Service Comb的多語言微服務(wù)平臺(tái)①

    2020-04-24 02:23:50
    關(guān)鍵詞:調(diào)用底座運(yùn)維

    趙 昱

    (武漢郵電科學(xué)研究院,武漢 430074)

    隨著云技術(shù)和通信網(wǎng)絡(luò)的快速發(fā)展,通信網(wǎng)絡(luò)管理系統(tǒng)一方面需要承載新開發(fā)的網(wǎng)絡(luò)運(yùn)維服務(wù),另一方面需要兼容原有的網(wǎng)絡(luò)管理服務(wù),將原有服務(wù)和新開發(fā)的服務(wù)統(tǒng)一管理[1].

    在微服務(wù)平臺(tái)上實(shí)現(xiàn)已有網(wǎng)管功能的融合管理和新開發(fā)微服務(wù)架構(gòu)功能的發(fā)布和服務(wù)治理,如何將C/S 架構(gòu)的網(wǎng)管平臺(tái)中的C++服務(wù)發(fā)布到使用B/S 架構(gòu)開發(fā)的Java 語言平臺(tái)[2],是現(xiàn)有通信運(yùn)維管理平臺(tái)最關(guān)鍵的工作之一.目前對(duì)于通信網(wǎng)運(yùn)維平臺(tái)的研究主要是使用Java 或其他語言進(jìn)行單語言開發(fā)與維護(hù)[3],對(duì)多種語言微服務(wù)統(tǒng)一管控的研究較少.

    針對(duì)以上問題,本文在前有研究的基礎(chǔ)上,提出了使用ServiceComb 架構(gòu)的微服務(wù)平臺(tái),通過開發(fā)Java 底座和C++底座的模式,為現(xiàn)有兩種語言的共同治理提供共同的環(huán)境.而對(duì)于傳統(tǒng)網(wǎng)管服務(wù)較多、服務(wù)之間相互依賴的情況,使用邊車模式,將互相依賴的服務(wù)編入同一邊車內(nèi),從而使已有網(wǎng)管軟件的功能不受到影響.平臺(tái)面向通信提供商運(yùn)維人員,將已有的通信網(wǎng)管軟件進(jìn)行融合一體化,在滿足運(yùn)營(yíng)商要求的同時(shí),減少運(yùn)維人員的工作難度.

    1 ServiceComb 架構(gòu)

    1.1 微服務(wù)架構(gòu)介紹

    傳統(tǒng)軟件多使用單體架構(gòu)實(shí)現(xiàn),單體架構(gòu)也被稱為單體系統(tǒng)或者是單體應(yīng)用,就是一種系統(tǒng)中所有的功能、模塊耦合在一個(gè)應(yīng)用中的架構(gòu)方式.用簡(jiǎn)單的方式理解就是將整個(gè)應(yīng)用包括應(yīng)用、數(shù)據(jù)庫(kù)等都在同一個(gè)服務(wù)器上.而分布式從簡(jiǎn)單的角度上理解就是將應(yīng)用和數(shù)據(jù)等分開到不同的服務(wù)器上,就然后對(duì)于應(yīng)用和數(shù)據(jù)庫(kù)進(jìn)行不同方向上的性能優(yōu)化等等操作.單一架構(gòu)相比于微服務(wù)架構(gòu),具有測(cè)試成本高、可伸縮性差、可靠性差、迭代困難、跨語言程度差、團(tuán)隊(duì)協(xié)作難等缺點(diǎn).

    微服務(wù)是一種架構(gòu)風(fēng)格,一個(gè)大型的復(fù)雜軟件應(yīng)用,由一個(gè)或者多個(gè)微服務(wù)組成,系統(tǒng)中的各個(gè)微服務(wù)可以被獨(dú)立部署,各個(gè)微服務(wù)之間是松耦合的,每個(gè)微服務(wù)僅僅關(guān)注于完成一件任務(wù)并很好的完成該任務(wù).將一個(gè)復(fù)雜的軟件系統(tǒng)進(jìn)行拆分,通過拆分之后,這個(gè)復(fù)雜的應(yīng)用系統(tǒng)變的更加的高效.

    微服務(wù)架構(gòu)優(yōu)點(diǎn)可以概括為以下幾點(diǎn):

    (1)降低復(fù)雜度:將原來偶合在一起的復(fù)雜業(yè)務(wù)拆分為單個(gè)服務(wù),規(guī)避了原本復(fù)雜度無止境的積累.每一個(gè)微服務(wù)專注于單一功能,并通過定義良好的接口清晰表述服務(wù)邊界.每個(gè)服務(wù)開發(fā)者只專注服務(wù)本身,通過使用緩存、DAL 等各種技術(shù)手段來提升系統(tǒng)的性能,而對(duì)于消費(fèi)方來說完全透明.

    (2)可獨(dú)立部署:由于微服務(wù)具備獨(dú)立的運(yùn)行進(jìn)程,所以每個(gè)微服務(wù)可以獨(dú)立部署.當(dāng)業(yè)務(wù)迭代時(shí)只需要發(fā)布相關(guān)服務(wù)的迭代即可,降低了測(cè)試的工作量同時(shí)也降低了服務(wù)發(fā)布的風(fēng)險(xiǎn).

    (3)容錯(cuò):在微服務(wù)架構(gòu)下,當(dāng)某一組件發(fā)生故障時(shí),故障會(huì)被隔離在單個(gè)服務(wù)中.通過限流、熔斷等方式降低錯(cuò)誤導(dǎo)致的危害,保障核心業(yè)務(wù)正常運(yùn)行.

    (4)擴(kuò)展:單塊架構(gòu)應(yīng)用也可以實(shí)現(xiàn)橫向擴(kuò)展,就是將整個(gè)應(yīng)用完整的復(fù)制到不同的節(jié)點(diǎn).當(dāng)應(yīng)用的不同組件在擴(kuò)展需求上存在差異時(shí),微服務(wù)架構(gòu)便體現(xiàn)出其靈活性,因?yàn)槊總€(gè)服務(wù)可以根據(jù)實(shí)際需求獨(dú)立進(jìn)行擴(kuò)展.

    1.2 ServiceComb 架構(gòu)

    目前常見的微服務(wù)架構(gòu)有SpringCloud 和Dubbo,Spring Cloud 是一系列框架的有序集合.它利用Spring Boot 的開發(fā)便利性巧妙地簡(jiǎn)化了分布式系統(tǒng)基礎(chǔ)設(shè)施的開發(fā),如服務(wù)發(fā)現(xiàn)注冊(cè)、配置中心、消息總線、負(fù)載均衡、斷路器、數(shù)據(jù)監(jiān)控等,都可以用Spring Boot 的開發(fā)風(fēng)格做到一鍵啟動(dòng)和部署.Dubbo 是阿里巴巴公司開源的服務(wù)治理框架,使用人數(shù)眾多,提供了優(yōu)秀的分布式解決方案.但是SpringCloud 和Dubbo在Java 之外的其他編程語言的支持較差,為了解決這一問題,本文采用ServiceComb 架構(gòu)進(jìn)行開發(fā).

    ServiceComb 是華為云于2017年6月開源的微服務(wù)框架,并于2017年12月正式進(jìn)入Apache 軟件基金會(huì)孵化.其包括一站式的服務(wù)注冊(cè)、服務(wù)治理、動(dòng)態(tài)配置功能,具備服務(wù)化契約增強(qiáng)、多語言SDK 支持、多通信協(xié)議支持等優(yōu)勢(shì)特性,并提供SAGA 數(shù)據(jù)最終一致性方案解決微服務(wù)架構(gòu)數(shù)據(jù)一致性難題.ServiceComb兼容Spring Cloud 等業(yè)界流行微服務(wù)框架,互通業(yè)界生態(tài).

    ServiceComb 相比與其他微服務(wù)架構(gòu)的主要優(yōu)點(diǎn)是解決了存量應(yīng)用和新開發(fā)應(yīng)用共存的問題,對(duì)于新開發(fā)的Java 應(yīng)用,使用Java-chassis (Java 底座)完成服務(wù)治理功能,而對(duì)于已經(jīng)存在的,使用其他語言開發(fā)的應(yīng)用,使用底座的方式實(shí)現(xiàn)業(yè)務(wù)代碼的0 侵入改造,從而完成混合部署,統(tǒng)一治理.ServiceComb 特性如圖1所示.

    2 系統(tǒng)分析與架構(gòu)設(shè)計(jì)

    2.1 系統(tǒng)需求分析

    2018年5月中國(guó)移動(dòng)集團(tuán)發(fā)布了最新的《OMC系統(tǒng)通用技術(shù)規(guī)范》,將管控一體、微服務(wù)和云架構(gòu)的技術(shù)要求納入規(guī)范,規(guī)范的核心關(guān)鍵是OMC 的微服務(wù)架構(gòu).

    隨著編程語言的發(fā)展,網(wǎng)絡(luò)管理和運(yùn)維軟件的開發(fā)環(huán)境越來越多樣,需要建立一個(gè)可以統(tǒng)一管理多種編程語言服務(wù)的微服務(wù)平臺(tái).多語言微服務(wù)平臺(tái)應(yīng)該滿足的需求:

    (1)統(tǒng)一服務(wù)注冊(cè)中心,對(duì)平臺(tái)上的微服務(wù)提供統(tǒng)一的服務(wù)注冊(cè)與發(fā)現(xiàn)、以及服務(wù)治理能力的支撐.

    (2)統(tǒng)一服務(wù)配置中心,為微服務(wù)提供集中式的服務(wù)配置存儲(chǔ)、以及客戶端服務(wù)配置的自動(dòng)拉取,實(shí)現(xiàn)服務(wù)配置的動(dòng)態(tài)更新支持.

    (3)集中式的服務(wù)運(yùn)維監(jiān)管中心,實(shí)現(xiàn)服務(wù)健康檢查與運(yùn)行監(jiān)控、服務(wù)配置動(dòng)態(tài)變更與管理,對(duì)服務(wù)進(jìn)行可視化的監(jiān)管.

    (4)多語言微服務(wù)底座,實(shí)現(xiàn)微服務(wù)的統(tǒng)一注冊(cè)和發(fā)現(xiàn)、配置動(dòng)態(tài)更新、健康檢查、服務(wù)RPC 通信.微服務(wù)的統(tǒng)一治理問題,如:負(fù)載、熔斷、容錯(cuò)、限流等.

    圖1 ServiceComb 特性圖

    2.2 系統(tǒng)模塊拆分

    根據(jù)系統(tǒng)需求分析,將平臺(tái)設(shè)計(jì)拆分為3 個(gè)功能模塊來完成開發(fā).分別是服務(wù)注冊(cè)和配置中心、運(yùn)維監(jiān)管中心、微服務(wù)底座.3 個(gè)模塊功能如下:

    服務(wù)注冊(cè)和配置中心負(fù)責(zé)提供微服務(wù)的注冊(cè)和發(fā)現(xiàn)功能支撐,支持服務(wù)配置的動(dòng)態(tài)配置.

    運(yùn)維監(jiān)管中心主要是對(duì)平臺(tái)和平臺(tái)上的微服務(wù)進(jìn)行監(jiān)控和管理,對(duì)系統(tǒng)運(yùn)維功能支持.

    多語言微服務(wù)底座是核心模塊,提供對(duì)多種編程語言微服務(wù)的支持,實(shí)現(xiàn)服務(wù)治理、服務(wù)間通信、服務(wù)的注冊(cè)與發(fā)現(xiàn)等功能.目前提供了對(duì)Java 和C++的支持.

    2.3 整體架構(gòu)設(shè)計(jì)

    為了使多語言微服務(wù)平臺(tái)的每個(gè)服務(wù)之間的分工和開發(fā)界限清晰,提高開發(fā)的效率,將平臺(tái)分為應(yīng)用層、接口層、服務(wù)層、數(shù)據(jù)層和物理層,整體架構(gòu)設(shè)計(jì)圖如圖2 所示.

    各層包含內(nèi)容如下:

    (1)應(yīng)用層:包括對(duì)服務(wù)的監(jiān)控功能、配置的發(fā)布功能、服務(wù)的發(fā)布功能.

    (2)接口層:接口層主要是API Gateway 實(shí)現(xiàn)的網(wǎng)關(guān)服務(wù),基于JWT 實(shí)現(xiàn)的權(quán)限管理功能和基于RocketMQ 實(shí)現(xiàn)的消息中間件服務(wù).

    (3)服務(wù)層:主要是平臺(tái)提供的核心服務(wù),如服務(wù)注冊(cè)和配置中心、運(yùn)維監(jiān)管中心、Java 微服務(wù)底座,C++微服務(wù)底座和邊車.還包括平臺(tái)微服務(wù)架構(gòu)的基礎(chǔ)服務(wù),由ServiceComb 對(duì)SpringCloud 有著良好的支持性,使用Consul 作為服務(wù)注冊(cè)和配置中心,自動(dòng)化配置服務(wù)SpringCloud Config.在微服務(wù)底座中,基于Hystrix 實(shí)現(xiàn)的容錯(cuò)處理器,實(shí)現(xiàn)了服務(wù)的容錯(cuò)處理和服務(wù)質(zhì)量信息上報(bào).基于Ribbon 實(shí)現(xiàn)的負(fù)載均衡處理器,有效提高服務(wù)的承載能力.通過RPC 調(diào)用鏈模式,將負(fù)載均衡、熔斷等服務(wù)治理功能通過實(shí)現(xiàn)單獨(dú)的處理器來實(shí)現(xiàn),自定義選擇處理器,形成鏈?zhǔn)秸{(diào)用,從而完成服務(wù)治理的功能,也為后期拓展提供了簡(jiǎn)單的模式.平臺(tái)的基礎(chǔ)服務(wù)使用Consul 作為服務(wù)注冊(cè)和配置中心,簡(jiǎn)化了設(shè)計(jì).使用SpringCloud Config 處理服務(wù)的配置動(dòng)態(tài)更新.

    (1)數(shù)據(jù)層:數(shù)據(jù)層主要包括服務(wù)實(shí)例的數(shù)據(jù)、配置信息數(shù)據(jù)、配置緩存.

    (2)物理層:包括服務(wù)器、網(wǎng)絡(luò)設(shè)備、安全組件等,支撐系統(tǒng)的物理組件.

    3 微服務(wù)平臺(tái)的設(shè)計(jì)

    3.1 注冊(cè)與配置中心

    為構(gòu)建高效注冊(cè)和配置中心,微服務(wù)平臺(tái)采用HashiCorp 公司Consul 注冊(cè)配置中心組件[4],Consul 作為微服務(wù)組件能同時(shí)提供注冊(cè)中心和配置中心的功能.

    圖2 系統(tǒng)架構(gòu)圖

    注冊(cè)中心服務(wù)端實(shí)現(xiàn):

    啟動(dòng)使用Consul 的應(yīng)用程序,在hashicorp 官網(wǎng)下載consul.exe,配置consul 到環(huán)境變量啟動(dòng)即可完成服務(wù)端.

    注冊(cè)中心客戶端實(shí)現(xiàn):

    ecwid 是Consul 客戶端的一種,在Pom 依賴中添加ecwid 的consul-api.通過ConsulClient 的newService 對(duì)象的構(gòu)造方法傳入注冊(cè)IP 和端口.然后設(shè)置newService對(duì)象的服務(wù)名、服務(wù)ID、服務(wù)標(biāo)簽和服務(wù)端口信息,最后調(diào)用ConsulClient.agent-ServiceRegister方法完成服務(wù)注冊(cè).

    在分布式應(yīng)用場(chǎng)景中,微服務(wù)實(shí)例對(duì)于配置中心應(yīng)該具有弱依賴和稀疏變更特點(diǎn)[5],弱依賴性表示微服務(wù)與配置中心依賴性應(yīng)該降至最低,在配置中心發(fā)生故障情況下,提高系統(tǒng)容災(zāi)性.稀疏變更表示動(dòng)態(tài)配置在部署至微服務(wù)實(shí)例后,很少發(fā)生改變.而一旦發(fā)生變更,則需要配置客戶端從配置中心快速地同步和部署配置變更.

    針對(duì)上述特點(diǎn),配置客戶端引入本地快照機(jī)制,將配置保存值本地文件中,提高微服務(wù)容災(zāi)性.引入本地緩存機(jī)制,將本地微服務(wù)最新配置保存至緩存中,提高微服務(wù)獲取實(shí)時(shí)配置的性能.

    配置中心客戶端變更流程:用戶在監(jiān)控中心發(fā)布配置變更后,變更被同步至配置中心,客戶端與的配置中心之間以長(zhǎng)輪詢方式維持著心跳,在獲取到變更通知后,重新從配置中心拉取配置,更新本地緩存和快照文件.

    Consul 配置中心以鍵值K/V 方式存儲(chǔ)配置信息,key 值以文件夾路徑表示.為實(shí)現(xiàn)配置管理與共享,配置數(shù)據(jù)按照微服務(wù)隔離層次(環(huán)境---服務(wù)組---服務(wù)---服務(wù)實(shí)例)來存儲(chǔ),形成樹型多層級(jí)文件夾結(jié)構(gòu),結(jié)構(gòu)中子節(jié)點(diǎn)能夠訪問父節(jié)點(diǎn)中的配置,同層級(jí)節(jié)點(diǎn)中配置相互隔離,如圖3 所示.

    圖3 配置隔離示意圖

    根節(jié)點(diǎn)“環(huán)境”(Environment)下包含了若干個(gè)服務(wù)組,它的配置對(duì)所有微服務(wù)共享;

    節(jié)點(diǎn)“服務(wù)組”(ServiceGroup)對(duì)環(huán)境中服務(wù)按照功能特性進(jìn)行了分組,配置對(duì)組內(nèi)所有微服務(wù)及其實(shí)例共享,不同微服務(wù)組配置相互隔離;

    節(jié)點(diǎn)“服務(wù)”(Service)中的配置對(duì)該服務(wù)所有實(shí)例共享,不同微服務(wù)間配置相互隔離;

    節(jié)點(diǎn)“服務(wù)實(shí)例”(Instance)中存儲(chǔ)某個(gè)微服務(wù)實(shí)例配置,不同實(shí)例間配置相互隔離.

    3.2 運(yùn)維監(jiān)控中心

    運(yùn)維監(jiān)控中心與Java 底座中的Hystrix 組件進(jìn)行通信,獲取服務(wù)的服務(wù)質(zhì)量信息并在前端以圖表的形式顯示.

    運(yùn)維監(jiān)管中心在啟動(dòng)后就按5 s 的周期對(duì)全部的服務(wù)實(shí)例進(jìn)行性能監(jiān)控,與服務(wù)實(shí)例進(jìn)行通信獲取服務(wù)質(zhì)量數(shù)據(jù),如果是java 微服務(wù),則建立和該服務(wù)實(shí)例的hystrix.stream 流的連接,讀取服務(wù)質(zhì)量數(shù)據(jù),如果是網(wǎng)管微服務(wù),則建立和該服務(wù)實(shí)例所在邊車的hystrix.stream 流的連接,讀取服務(wù)質(zhì)量數(shù)據(jù).讀取到的服務(wù)質(zhì)量數(shù)據(jù)包含了該服務(wù)實(shí)例上應(yīng)用了hystrix 的所有方法的服務(wù)質(zhì)量數(shù)據(jù),對(duì)每一個(gè)服務(wù)提供者提供的每一個(gè)方法均記錄該方法的請(qǐng)求流量(qps)、請(qǐng)求的失敗/異常數(shù)[6]、請(qǐng)求的錯(cuò)誤比例、請(qǐng)求的平均響應(yīng)時(shí)間、服務(wù)熔斷狀態(tài)等服務(wù)質(zhì)量參數(shù)[7].

    獲取到服務(wù)質(zhì)量數(shù)據(jù)后,對(duì)數(shù)據(jù)進(jìn)行處理,處理的內(nèi)容包括:整理數(shù)據(jù)、判斷告警狀態(tài)、生成或恢復(fù)服務(wù)質(zhì)量告警,處理完成后將服務(wù)質(zhì)量數(shù)據(jù)保存到緩存中,在每個(gè)獲取服務(wù)質(zhì)量性能數(shù)據(jù)的周期里都對(duì)此緩存進(jìn)行更新,此外,每隔5 分鐘將一次獲取到的服務(wù)質(zhì)量數(shù)據(jù)保存到數(shù)據(jù)庫(kù).當(dāng)查看指定服務(wù)實(shí)例的服務(wù)質(zhì)量數(shù)據(jù)時(shí),后臺(tái)根據(jù)用戶請(qǐng)求的參數(shù)從緩存中查找到對(duì)應(yīng)的服務(wù)質(zhì)量數(shù)據(jù)并返回給前端.

    3.3 微服務(wù)底座

    3.3.1 Java 微服務(wù)底座

    Java 微服務(wù)底座的提供的負(fù)載均衡、熔斷、容錯(cuò)、限流等功能使用目前已有的SpringCloud 組件即可完成.

    服務(wù)的注冊(cè)和發(fā)現(xiàn)通過Consul 完成,考慮到服務(wù)間的通信是通過底座完成,所以需要對(duì)注冊(cè)發(fā)現(xiàn)進(jìn)行監(jiān)聽.

    (1)服務(wù)注冊(cè)設(shè)計(jì)

    服務(wù)需要通過根據(jù)配置文件,自動(dòng)將服務(wù)注冊(cè)到Consul.在獲取服務(wù)的時(shí)候,需要及時(shí)獲取到最新的服務(wù),在獲取服務(wù)的時(shí)候需要使用緩存,避免頻繁的和Consul 進(jìn)行調(diào)用.服務(wù)注冊(cè)和健康檢查流程如下:

    1)Spring 容器啟動(dòng)的時(shí)候,讀取配置的spring.factories,對(duì)于配置的bean 進(jìn)行初始化,將Discovery AutoConfiguration 里的配置bean 進(jìn)行初始化.

    2)在Spring 容器初始化完成后,會(huì)發(fā)送Context RefreshedEvent,監(jiān)聽這個(gè)Event,可以啟動(dòng)服務(wù)端,如IceServer 或者RestServer.

    3)啟動(dòng)服務(wù)以后發(fā)送事件,監(jiān)聽到服務(wù)啟動(dòng)成功以后,將服務(wù)注冊(cè)到Consul.

    注冊(cè)的時(shí)候,默認(rèn)注冊(cè)地址為:"http://"+服務(wù)IP+"/actuator/health",通過Actuator 組件,consul 直接向該服務(wù)發(fā)起心跳,可以得到服務(wù)的健康狀態(tài).監(jiān)控通信通過讀取數(shù)據(jù),可以判斷服務(wù)是否存活.

    (2)服務(wù)發(fā)現(xiàn)設(shè)計(jì)

    1)客戶端調(diào)用通過實(shí)現(xiàn)負(fù)載均衡功能的處理器上獲取服務(wù)列表,當(dāng)處理器調(diào)用Consul 獲取服務(wù)列表的時(shí)候,首先去訪問緩存,獲取當(dāng)前的緩存狀態(tài),若緩存狀態(tài)為success,則返回服務(wù)列表,若緩存狀態(tài)為False,則去Consul 上獲取最新的服務(wù)列表,并更新緩存.

    2)初始化的時(shí)候啟動(dòng)Consul 監(jiān)聽任務(wù)去Consul上監(jiān)聽是否有服務(wù)的變更.

    3)當(dāng)Consul 的服務(wù)發(fā)生變更以后,向緩存發(fā)送緩存失效信息,DiscoveryCache(發(fā)現(xiàn)緩存)此時(shí)設(shè)置緩存可讀狀態(tài)為False.

    4)當(dāng)下次請(qǐng)求訪問到,DiscoveryCache 的時(shí)候,獲取服務(wù)列表時(shí),首先去獲取緩存可讀的狀態(tài),當(dāng)為False 的時(shí)候,直接向Consul 獲取最新的服務(wù)列表.

    (3)服務(wù)RPC 調(diào)用鏈設(shè)計(jì)

    微服務(wù)底座的服務(wù)治理使用調(diào)用鏈方式進(jìn)行,調(diào)用鏈?zhǔn)穷愃芐erviceComb 的Chassis 組件中的Handler.將負(fù)載均衡、熔斷等服務(wù)治理功能通過實(shí)現(xiàn)單獨(dú)的處理器來實(shí)現(xiàn),自定義選擇處理器,形成鏈?zhǔn)秸{(diào)用,從而完成服務(wù)治理.

    調(diào)用鏈采用分層設(shè)計(jì),分別為API 接入層、治理層、協(xié)議層.Spring 應(yīng)用或者是網(wǎng)管客戶端通過調(diào)用接入層的API 接口引入服務(wù)治理功能,服務(wù)治理的整體結(jié)構(gòu)采用鏈?zhǔn)椒?wù),方便以后的服務(wù)治理功能的拓展,協(xié)議層封裝了客戶端發(fā)送請(qǐng)求和接收請(qǐng)求的操作.

    Spring-support 提供Spring 注解,注解名稱@Reference,便于上層透明調(diào)用遠(yuǎn)程端口,注解屬性serviceName(服務(wù)名稱),identity(訪問),protocol(協(xié)議類型).Spring 容器掃描到@Reference 注解后針對(duì)接口生成代理,并交由spring 容器進(jìn)行管理.代理的核心實(shí)現(xiàn)在攔截器DefaultMethod-Interceptor 中,將所有參數(shù)封裝為Invocation,傳給服務(wù)治理模塊.

    治理層中業(yè)務(wù)的Handler 采取單例模式,保證每一個(gè)服務(wù)在調(diào)用鏈中的治理是獨(dú)立的.LoadBalancer 從注冊(cè)中心consul 上根據(jù)路由和負(fù)載均衡策略找出一個(gè)地址發(fā)起調(diào)用.HystrixHandler 對(duì)服務(wù)調(diào)用進(jìn)行相關(guān)統(tǒng)計(jì),然后根據(jù)統(tǒng)計(jì)數(shù)據(jù)判斷是否熔斷.熔斷指定時(shí)間后會(huì)嘗試恢復(fù).TransportClient-Handler 負(fù)責(zé)根據(jù)協(xié)議找到具體的client 然后發(fā)起調(diào)用,如BusClient.

    協(xié)議層中TransportHandler 根據(jù)協(xié)議名稱選取protocol 實(shí)現(xiàn),在protocol 中通過相應(yīng)Client 發(fā)起遠(yuǎn)程調(diào)用并接收響應(yīng).

    自定義容器管理ExtensionLoader,通過JavaSpi 機(jī)制實(shí)現(xiàn)一個(gè)自定義容器.同步調(diào)用方式中DefaultMethod Interceptor 將相關(guān)參數(shù)封裝為請(qǐng)求,經(jīng)過Handler 鏈處理,使用對(duì)應(yīng)Protocol 將請(qǐng)求發(fā)送出去,將當(dāng)前線程阻塞在控制器,服務(wù)端有響應(yīng)后通知解除阻塞.

    3.3.2 C++微服務(wù)底座

    C++微服務(wù)底座(CppChassis)負(fù)責(zé)承載C++微服務(wù),并負(fù)責(zé)與SideCar 之間的微服務(wù)發(fā)現(xiàn)的通信、服務(wù)治理的通信、配置獲取的通信與配置變化消息的處理和心跳的發(fā)送.

    CppChassis RPC 調(diào)用流程圖如圖4 所示.

    圖4 RPC 調(diào)用流程圖

    C++網(wǎng)管微服務(wù)調(diào)用其他C++網(wǎng)管服務(wù)時(shí),在CppChassis 里面會(huì)將調(diào)用過程分為3 個(gè)步驟:

    (1)Before Invoke:該調(diào)用是通過CppChassis 從SideCar 獲取C++Provider 服務(wù)的IP 端口等定位信息;

    (2)Ice Invoke:該調(diào)用通過指定的IP 端口直接發(fā)起向其他C++Provider 服務(wù)的Ice 調(diào)用;

    (3)After Invoke:該調(diào)用是將調(diào)用結(jié)果通過Cpp-Chassis 反饋給SideCar,用于服務(wù)治理相關(guān)信息的收集.

    3.3.3 邊車

    對(duì)于C++服務(wù),平臺(tái)使用邊車模式支持服務(wù)治理功能,Sidecar 模式是一種將應(yīng)用功能從應(yīng)用本身剝離出來作為單獨(dú)進(jìn)程的方式.該模式允許我們向應(yīng)用無侵入添加多種功能,避免了為滿足第三方組件需求而向應(yīng)用添加額外的配置代碼.

    邊車負(fù)責(zé)進(jìn)行控制,提供負(fù)載均衡,容錯(cuò)控制,熔斷控制,健康檢查等功能,服務(wù)間實(shí)際的遠(yuǎn)程調(diào)用由服務(wù)自己完成.

    (1)邊車的注冊(cè)設(shè)計(jì)

    項(xiàng)目啟動(dòng)的時(shí)候通過SPI 機(jī)制啟動(dòng)掃描類,掃描環(huán)境變量C++服務(wù)對(duì)應(yīng)的路徑下的yml,過濾出所有yml 格式的文件分別批量注冊(cè).注冊(cè)完畢后運(yùn)維監(jiān)控中心發(fā)送注冊(cè)通知,等待邊車返回健康檢查數(shù)據(jù).

    (2)邊車的健康檢查設(shè)計(jì)

    邊車的健康檢查通過調(diào)用C++微服務(wù)底座健康檢查接口實(shí)現(xiàn),consul 的心跳檢查會(huì)通過邊車調(diào)用C++接口完成數(shù)據(jù)采集.

    (3)邊車的RPC 調(diào)用設(shè)計(jì)

    邊車提供了兩個(gè)方法:BeforeInvoke,AfterInvoke;C++服務(wù)在發(fā)起遠(yuǎn)程調(diào)用前,先從BeforeInvoke 方法獲取服務(wù)實(shí)例,調(diào)用完成后再用AfterInvoke 方法通知邊車調(diào)用結(jié)束,以及調(diào)用的結(jié)果.

    BeforeInvoke 方法中,邊車會(huì)創(chuàng)建一個(gè)Handler 鏈,與Java 底座實(shí)現(xiàn)類似.

    LoadBalanceHandler 負(fù)責(zé)負(fù)載均衡功能和容錯(cuò)功能,HystrixHandler 負(fù)載熔斷控制和服務(wù)質(zhì)量統(tǒng)計(jì),從而與Java 底座使用同樣方式實(shí)現(xiàn)服務(wù)治理.

    AfterInvoke 方法會(huì)把遠(yuǎn)程調(diào)用結(jié)果通知給對(duì)應(yīng)的處理器Handler,從而完成服務(wù)調(diào)用監(jiān)控.

    4 系統(tǒng)測(cè)試

    4.1 系統(tǒng)功能測(cè)試

    由于平臺(tái)設(shè)計(jì)中,主要功能是對(duì)服務(wù)的監(jiān)控和發(fā)布,通過查看對(duì)服務(wù)的監(jiān)控,可以測(cè)試平臺(tái)的監(jiān)控能力和底座的承載能力.

    當(dāng)平臺(tái)檢查到服務(wù)時(shí),會(huì)在頁(yè)面上展示服務(wù)監(jiān)控?cái)?shù)據(jù),服務(wù)監(jiān)控情況如圖5 所示.需要了解異常服務(wù)詳情時(shí),使用監(jiān)控可以了解具體的服務(wù)IP 和端口以及健康檢查端口返回的元數(shù)據(jù),異常服務(wù)詳情如圖6 所示.

    圖5 服務(wù)監(jiān)控圖

    圖6 異常服務(wù)詳情

    4.2 性能測(cè)試

    系統(tǒng)性能測(cè)試主要分為兩個(gè)部分,第一部分為采用微服務(wù)架構(gòu)的服務(wù)較原有架構(gòu)服務(wù)的性能提升,另一部分為原有服務(wù)采用微服務(wù)底座承載之后性能劣化是否在20%以內(nèi).

    本文采用Apache Bench 模擬100 個(gè)用戶對(duì)微服務(wù)發(fā)出訪問請(qǐng)求,分析內(nèi)存占用情況如圖7 所示,其中上方虛線表示傳統(tǒng)單架構(gòu)服務(wù)的內(nèi)存占用,下方實(shí)線表示采用本文微服務(wù)底座的服務(wù)內(nèi)存占用.橫軸表示請(qǐng)求發(fā)出后服務(wù)運(yùn)行時(shí)間(s),縱軸表示內(nèi)存占用大小(MB).

    對(duì)于原有C++語言開發(fā)的服務(wù),由于RPC 操作通過邊車進(jìn)行,每次調(diào)用服務(wù)在原有調(diào)用邏輯上增加了BeforeInvoke 和AfterInvoke 操作,可能會(huì)造成性能劣化,通過模擬調(diào)用同一接口多次,得到調(diào)用時(shí)間如表1所示.

    圖7 內(nèi)存占用對(duì)比圖

    表1 多次調(diào)用C++接口響應(yīng)時(shí)間對(duì)比分析

    可以看出,在高并發(fā)情況下,采用本文微服務(wù)架構(gòu)的服務(wù)內(nèi)存占用較傳統(tǒng)架構(gòu)服務(wù)有著明顯優(yōu)勢(shì),并且內(nèi)存占用變化更為平穩(wěn).

    從表中可以看出,原有C++服務(wù)通過引入底座模塊后,RPC 調(diào)用耗時(shí)有所增加,但劣化范圍在12%左右,在期望范圍之內(nèi).

    通過將不同語言語言開發(fā)的服務(wù)置于不同的底座之中,統(tǒng)一交由平臺(tái)監(jiān)控管理,對(duì)于微服務(wù)的并發(fā)環(huán)境下內(nèi)存占用,由于使用基于SpringCloud Robbin 的負(fù)載均衡組件,使得服務(wù)更加平穩(wěn)且內(nèi)存占用更小,對(duì)于C++服務(wù),在引入C++底座和邊車后被改造為微服務(wù),使其具有了服務(wù)治理的功能,在RPC 調(diào)用時(shí)性能略有下降但無明顯劣化.

    5 結(jié)束語

    通信業(yè)務(wù)的快速發(fā)展,網(wǎng)絡(luò)管理軟件和運(yùn)維系統(tǒng)也在不斷更新,但統(tǒng)一管理的難度卻越來越大,運(yùn)維人員需要統(tǒng)一的管理控制平臺(tái)應(yīng)對(duì)愈發(fā)復(fù)雜的網(wǎng)絡(luò)情況.多語言微服務(wù)平臺(tái)作為承載EMS 系統(tǒng)和SDN 控制器的拓展融合平臺(tái),實(shí)現(xiàn)了微服務(wù)的注冊(cè)與發(fā)現(xiàn)、質(zhì)量監(jiān)控、服務(wù)定制化發(fā)布、多種語言微服務(wù)共同治理的一體化集成.該平臺(tái)能幫助新開發(fā)的Java 微服務(wù)發(fā)布到管控平臺(tái)進(jìn)行發(fā)布與管理,也能將傳統(tǒng)的C++服務(wù)通過底座發(fā)布到平臺(tái)中并實(shí)現(xiàn)統(tǒng)一管控.為網(wǎng)絡(luò)方案供應(yīng)商解決滿足中國(guó)移動(dòng)OMC 技術(shù)規(guī)范中的要求提供了新的思路和示范性的系統(tǒng),為傳統(tǒng)網(wǎng)絡(luò)管理軟件實(shí)現(xiàn)服務(wù)治理和應(yīng)用監(jiān)控起到了關(guān)鍵性作用,同時(shí)也保證了已有功能再利用,減少了資源浪費(fèi).但是對(duì)于其他編程語言的融入沒有進(jìn)行相應(yīng)測(cè)試,下一步將以承載Golang、Scala 微服務(wù)作為研究目標(biāo).

    猜你喜歡
    調(diào)用底座運(yùn)維
    大型集裝箱船艙底座結(jié)構(gòu)加強(qiáng)與改進(jìn)
    核電項(xiàng)目物項(xiàng)調(diào)用管理的應(yīng)用研究
    運(yùn)維技術(shù)研發(fā)決策中ITSS運(yùn)維成熟度模型應(yīng)用初探
    兵馬俑底座學(xué)問大(第六站)
    機(jī)械字碼打印底座結(jié)構(gòu)優(yōu)化設(shè)計(jì)及應(yīng)用
    LabWindows/CVI下基于ActiveX技術(shù)的Excel調(diào)用
    風(fēng)電運(yùn)維困局
    能源(2018年8期)2018-09-21 07:57:24
    雜亂無章的光伏運(yùn)維 百億市場(chǎng)如何成長(zhǎng)
    能源(2017年11期)2017-12-13 08:12:25
    基于系統(tǒng)調(diào)用的惡意軟件檢測(cè)技術(shù)研究
    基于ITIL的運(yùn)維管理創(chuàng)新實(shí)踐淺析
    久久久久久久久大av| xxx大片免费视频| 91精品一卡2卡3卡4卡| 久久精品熟女亚洲av麻豆精品| 秋霞在线观看毛片| 在现免费观看毛片| 婷婷色综合www| 男男h啪啪无遮挡| av国产久精品久网站免费入址| 国产在视频线精品| 国产精品久久久久久精品电影小说| 午夜激情av网站| av女优亚洲男人天堂| 99热全是精品| 久久久a久久爽久久v久久| 赤兔流量卡办理| 国产精品久久久久久久电影| 成人国语在线视频| 国产av国产精品国产| 免费黄色在线免费观看| 涩涩av久久男人的天堂| 看十八女毛片水多多多| 欧美人与性动交α欧美精品济南到 | 久久人人爽人人爽人人片va| 久久久久网色| 欧美精品高潮呻吟av久久| 女人久久www免费人成看片| 成人手机av| 日韩强制内射视频| videossex国产| 天堂俺去俺来也www色官网| videos熟女内射| 欧美人与善性xxx| 亚洲欧美精品自产自拍| 哪个播放器可以免费观看大片| √禁漫天堂资源中文www| 嫩草影院入口| 国产无遮挡羞羞视频在线观看| 国产成人精品一,二区| www.av在线官网国产| 欧美精品一区二区大全| 亚洲怡红院男人天堂| 亚洲国产精品一区三区| 九色亚洲精品在线播放| 少妇精品久久久久久久| 国产白丝娇喘喷水9色精品| 亚洲精品久久久久久婷婷小说| 亚洲国产av新网站| 色视频在线一区二区三区| 能在线免费看毛片的网站| 女的被弄到高潮叫床怎么办| 热99久久久久精品小说推荐| 91国产中文字幕| 亚洲精品国产色婷婷电影| 丝袜脚勾引网站| 欧美一级a爱片免费观看看| 夫妻性生交免费视频一级片| 亚洲欧美成人综合另类久久久| 色视频在线一区二区三区| 另类精品久久| av有码第一页| 一本色道久久久久久精品综合| 午夜91福利影院| 久久精品国产亚洲av天美| 久久av网站| 午夜日本视频在线| 亚洲欧洲精品一区二区精品久久久 | 亚洲国产毛片av蜜桃av| .国产精品久久| 成年女人在线观看亚洲视频| 两个人的视频大全免费| 国产精品三级大全| 丝袜美足系列| 蜜桃久久精品国产亚洲av| 亚洲国产日韩一区二区| 男人操女人黄网站| 国产精品人妻久久久影院| 国产精品一区二区在线不卡| 婷婷色av中文字幕| 人妻制服诱惑在线中文字幕| 亚洲国产精品专区欧美| 一区二区三区乱码不卡18| 精品亚洲成国产av| 大话2 男鬼变身卡| 一级a做视频免费观看| 亚洲欧美中文字幕日韩二区| 热99久久久久精品小说推荐| 69精品国产乱码久久久| 午夜福利视频精品| 日日啪夜夜爽| 亚洲欧美一区二区三区黑人 | 亚洲欧洲国产日韩| av在线播放精品| 女的被弄到高潮叫床怎么办| 亚洲欧美一区二区三区黑人 | 成人国产av品久久久| 国产熟女欧美一区二区| 成人国语在线视频| 国产精品久久久久成人av| 日本欧美视频一区| 男女啪啪激烈高潮av片| 青春草亚洲视频在线观看| 日韩一区二区三区影片| 人人妻人人爽人人添夜夜欢视频| 一区二区av电影网| 日韩免费高清中文字幕av| 免费黄频网站在线观看国产| 人人妻人人爽人人添夜夜欢视频| 久久久久久久久久人人人人人人| 午夜影院在线不卡| 久久久久久久亚洲中文字幕| 久久久精品免费免费高清| 国产精品.久久久| 伊人亚洲综合成人网| 视频区图区小说| 一级毛片电影观看| 美女福利国产在线| 最近2019中文字幕mv第一页| 久久精品国产亚洲av天美| 蜜桃在线观看..| 日本免费在线观看一区| 成人黄色视频免费在线看| 国产亚洲欧美精品永久| 亚洲高清免费不卡视频| 久久精品国产亚洲网站| av在线app专区| 欧美激情国产日韩精品一区| 全区人妻精品视频| 91aial.com中文字幕在线观看| 国产一区二区在线观看av| 精品久久久久久电影网| 精品一区在线观看国产| 精品人妻熟女av久视频| 亚洲美女搞黄在线观看| 久热这里只有精品99| 80岁老熟妇乱子伦牲交| 少妇的逼水好多| 欧美xxⅹ黑人| 亚洲精品aⅴ在线观看| 大香蕉久久成人网| 精品午夜福利在线看| 成人无遮挡网站| 婷婷色av中文字幕| 精品人妻在线不人妻| 亚洲国产精品999| 在线看a的网站| 日韩大片免费观看网站| 亚洲国产精品一区三区| 亚洲精品国产av成人精品| 建设人人有责人人尽责人人享有的| 一个人免费看片子| 免费看不卡的av| 一本一本久久a久久精品综合妖精 国产伦在线观看视频一区 | 国产极品天堂在线| 精品久久久久久久久av| 久久 成人 亚洲| 最近的中文字幕免费完整| 久久久a久久爽久久v久久| 国产一区二区三区综合在线观看 | 观看av在线不卡| 男女边吃奶边做爰视频| 久久午夜福利片| 在线亚洲精品国产二区图片欧美 | 国产亚洲午夜精品一区二区久久| 国模一区二区三区四区视频| 国产av一区二区精品久久| 日本av免费视频播放| 午夜福利视频精品| av专区在线播放| 国产精品偷伦视频观看了| 91精品伊人久久大香线蕉| 高清在线视频一区二区三区| 天天躁夜夜躁狠狠久久av| 观看美女的网站| av线在线观看网站| 日韩av不卡免费在线播放| 最近中文字幕高清免费大全6| 97在线人人人人妻| 亚洲精品乱码久久久久久按摩| 免费观看性生交大片5| 在线观看人妻少妇| 亚洲精品亚洲一区二区| av在线播放精品| 99久久精品国产国产毛片| 男女无遮挡免费网站观看| 大香蕉久久成人网| 亚洲精品国产av成人精品| 久久久欧美国产精品| 亚洲天堂av无毛| 少妇猛男粗大的猛烈进出视频| 亚洲少妇的诱惑av| 亚洲精品视频女| 久久国产亚洲av麻豆专区| 久久久久久久亚洲中文字幕| 视频区图区小说| 男人爽女人下面视频在线观看| 91精品一卡2卡3卡4卡| 日韩不卡一区二区三区视频在线| a 毛片基地| 伊人久久精品亚洲午夜| 中国三级夫妇交换| 建设人人有责人人尽责人人享有的| 久久女婷五月综合色啪小说| 国产高清国产精品国产三级| 又黄又爽又刺激的免费视频.| 亚洲激情五月婷婷啪啪| av国产久精品久网站免费入址| 久久毛片免费看一区二区三区| 日韩精品有码人妻一区| 水蜜桃什么品种好| 亚洲av二区三区四区| 久久久国产一区二区| 国产精品蜜桃在线观看| 人妻夜夜爽99麻豆av| 国产精品一区二区在线不卡| 午夜影院在线不卡| 欧美日韩精品成人综合77777| 男人爽女人下面视频在线观看| 十八禁网站网址无遮挡| 自拍欧美九色日韩亚洲蝌蚪91| 在线免费观看不下载黄p国产| 少妇高潮的动态图| 国产亚洲最大av| 午夜精品国产一区二区电影| 91午夜精品亚洲一区二区三区| 中文字幕av电影在线播放| 午夜影院在线不卡| 免费观看a级毛片全部| 日本欧美国产在线视频| 99re6热这里在线精品视频| 哪个播放器可以免费观看大片| av国产精品久久久久影院| 少妇熟女欧美另类| 精品一区二区三卡| 18在线观看网站| 亚洲精品av麻豆狂野| 建设人人有责人人尽责人人享有的| 免费黄频网站在线观看国产| 日韩精品免费视频一区二区三区 | 免费看av在线观看网站| 日韩精品免费视频一区二区三区 | 国产精品不卡视频一区二区| freevideosex欧美| 一级片'在线观看视频| 成年人午夜在线观看视频| 日本欧美视频一区| 日本黄大片高清| 自拍欧美九色日韩亚洲蝌蚪91| 国产精品熟女久久久久浪| 国产淫语在线视频| 边亲边吃奶的免费视频| 少妇的逼好多水| 国产精品一区www在线观看| 热99久久久久精品小说推荐| 亚洲怡红院男人天堂| 亚洲五月色婷婷综合| .国产精品久久| 18禁在线播放成人免费| 丝袜喷水一区| 久久精品国产自在天天线| 亚洲欧美中文字幕日韩二区| 精品国产一区二区三区久久久樱花| 伦理电影免费视频| 涩涩av久久男人的天堂| 成人黄色视频免费在线看| 婷婷色综合www| 伊人久久精品亚洲午夜| 狂野欧美激情性xxxx在线观看| 久久久国产欧美日韩av| 亚洲色图 男人天堂 中文字幕 | 久久精品久久久久久久性| 大陆偷拍与自拍| 在线观看国产h片| 国产色爽女视频免费观看| 日本午夜av视频| 欧美xxxx性猛交bbbb| 日韩熟女老妇一区二区性免费视频| 国产视频首页在线观看| 亚洲国产精品国产精品| 久久99精品国语久久久| 免费日韩欧美在线观看| 欧美激情极品国产一区二区三区 | 亚洲人与动物交配视频| 精品国产一区二区三区久久久樱花| 99九九线精品视频在线观看视频| 少妇的逼水好多| 爱豆传媒免费全集在线观看| 精品亚洲乱码少妇综合久久| 亚洲国产av新网站| 嘟嘟电影网在线观看| 纵有疾风起免费观看全集完整版| 国精品久久久久久国模美| 国产日韩欧美在线精品| 国产成人免费观看mmmm| 亚洲人成网站在线播| av网站免费在线观看视频| 一区二区三区乱码不卡18| 国产精品99久久久久久久久| 伦理电影免费视频| 在线观看免费视频网站a站| 亚洲av男天堂| 精品亚洲成a人片在线观看| av免费观看日本| 欧美xxxx性猛交bbbb| 久久人妻熟女aⅴ| 91久久精品国产一区二区成人| 国产伦理片在线播放av一区| 91久久精品国产一区二区三区| 午夜影院在线不卡| 日韩三级伦理在线观看| 国产日韩欧美亚洲二区| 欧美日韩精品成人综合77777| 少妇熟女欧美另类| 久久免费观看电影| 免费观看的影片在线观看| 看十八女毛片水多多多| 一区二区三区四区激情视频| 国产毛片在线视频| 青春草亚洲视频在线观看| 久久婷婷青草| 亚洲内射少妇av| 免费黄频网站在线观看国产| 一级毛片 在线播放| 亚洲人成网站在线播| 蜜臀久久99精品久久宅男| 好男人视频免费观看在线| 考比视频在线观看| 免费高清在线观看视频在线观看| 全区人妻精品视频| 老司机影院毛片| 国产片内射在线| 自线自在国产av| 亚洲国产日韩一区二区| 免费久久久久久久精品成人欧美视频 | 美女内射精品一级片tv| 蜜桃在线观看..| 免费播放大片免费观看视频在线观看| 久久午夜福利片| 一级爰片在线观看| 大香蕉久久成人网| 啦啦啦视频在线资源免费观看| 亚洲国产毛片av蜜桃av| 男女啪啪激烈高潮av片| 国产成人a∨麻豆精品| 超碰97精品在线观看| 中国美白少妇内射xxxbb| 日韩大片免费观看网站| 欧美亚洲日本最大视频资源| 波野结衣二区三区在线| 大码成人一级视频| 少妇人妻精品综合一区二区| 欧美激情国产日韩精品一区| 国产精品国产三级国产av玫瑰| 黄色视频在线播放观看不卡| 免费av不卡在线播放| 国产男女超爽视频在线观看| 一级a做视频免费观看| 最近的中文字幕免费完整| 成人免费观看视频高清| 一级a做视频免费观看| 久久人人爽人人片av| 亚洲在久久综合| 亚洲国产欧美在线一区| 国产亚洲一区二区精品| 色5月婷婷丁香| 国产男女内射视频| 日韩免费高清中文字幕av| 大又大粗又爽又黄少妇毛片口| 亚洲精品,欧美精品| 国产亚洲最大av| 涩涩av久久男人的天堂| 欧美日韩在线观看h| 午夜福利视频精品| 国产成人精品一,二区| 国产午夜精品久久久久久一区二区三区| 狂野欧美激情性xxxx在线观看| 日本欧美视频一区| 九草在线视频观看| 春色校园在线视频观看| 亚洲怡红院男人天堂| 激情五月婷婷亚洲| 大片免费播放器 马上看| 亚洲人成网站在线播| 人人妻人人爽人人添夜夜欢视频| .国产精品久久| 国产国语露脸激情在线看| 成人18禁高潮啪啪吃奶动态图 | av电影中文网址| 欧美亚洲日本最大视频资源| 成人午夜精彩视频在线观看| 我的老师免费观看完整版| 亚洲av福利一区| 免费观看的影片在线观看| 乱码一卡2卡4卡精品| 黄色一级大片看看| 亚洲国产av影院在线观看| 中文字幕av电影在线播放| 亚洲精品国产av蜜桃| 欧美变态另类bdsm刘玥| 日韩av不卡免费在线播放| 少妇的逼好多水| 久久精品夜色国产| 97超碰精品成人国产| 国产精品偷伦视频观看了| 色视频在线一区二区三区| 日本欧美国产在线视频| 少妇精品久久久久久久| 天天影视国产精品| 免费观看av网站的网址| 久久久久久伊人网av| 能在线免费看毛片的网站| 亚洲av不卡在线观看| 十八禁网站网址无遮挡| av免费观看日本| 亚洲欧美日韩卡通动漫| 18禁观看日本| 性高湖久久久久久久久免费观看| 日韩伦理黄色片| 91精品伊人久久大香线蕉| 晚上一个人看的免费电影| 欧美人与善性xxx| 日本色播在线视频| 在线观看美女被高潮喷水网站| 日本黄色片子视频| 欧美+日韩+精品| 亚洲精品日韩av片在线观看| 黄片播放在线免费| 欧美成人精品欧美一级黄| 国产在线免费精品| 亚洲国产精品专区欧美| 亚洲欧美清纯卡通| av在线老鸭窝| 三级国产精品欧美在线观看| 日韩大片免费观看网站| 精品久久久精品久久久| 91成人精品电影| av.在线天堂| 又粗又硬又长又爽又黄的视频| 国产老妇伦熟女老妇高清| 欧美激情 高清一区二区三区| 久久久久精品久久久久真实原创| 一区二区三区免费毛片| 成人综合一区亚洲| 这个男人来自地球电影免费观看 | 自拍欧美九色日韩亚洲蝌蚪91| 亚洲国产色片| 色5月婷婷丁香| 十分钟在线观看高清视频www| 男人爽女人下面视频在线观看| 亚洲丝袜综合中文字幕| 黄片无遮挡物在线观看| 国产免费一区二区三区四区乱码| 男人添女人高潮全过程视频| 欧美日韩在线观看h| 午夜91福利影院| 日本欧美国产在线视频| 大又大粗又爽又黄少妇毛片口| 街头女战士在线观看网站| 国语对白做爰xxxⅹ性视频网站| 大又大粗又爽又黄少妇毛片口| 日本午夜av视频| 男人爽女人下面视频在线观看| 免费大片黄手机在线观看| 777米奇影视久久| 成人二区视频| 国产免费一级a男人的天堂| 成人影院久久| 亚洲人成网站在线播| 狠狠婷婷综合久久久久久88av| 久久影院123| 欧美成人午夜免费资源| 日韩av不卡免费在线播放| 精品国产国语对白av| 18+在线观看网站| 日韩制服骚丝袜av| 午夜激情福利司机影院| 久久久久久久久久久免费av| 菩萨蛮人人尽说江南好唐韦庄| 人人妻人人添人人爽欧美一区卜| 久久精品国产亚洲网站| 伦精品一区二区三区| 国产一区有黄有色的免费视频| 母亲3免费完整高清在线观看 | 九九久久精品国产亚洲av麻豆| 午夜免费鲁丝| 日本黄色片子视频| 在线天堂最新版资源| 桃花免费在线播放| 国产免费视频播放在线视频| 国产精品国产三级国产专区5o| 一级毛片aaaaaa免费看小| 欧美xxⅹ黑人| 亚洲色图 男人天堂 中文字幕 | 久久女婷五月综合色啪小说| 亚洲综合色惰| xxxhd国产人妻xxx| 久久久久国产精品人妻一区二区| av专区在线播放| 欧美xxⅹ黑人| 日本vs欧美在线观看视频| 国产成人av激情在线播放 | 老司机亚洲免费影院| 在线亚洲精品国产二区图片欧美 | 亚洲激情五月婷婷啪啪| 亚洲av.av天堂| 中文字幕av电影在线播放| 亚洲精品国产av蜜桃| 黄色一级大片看看| 男人操女人黄网站| 免费大片18禁| 午夜福利,免费看| 桃花免费在线播放| 国产精品熟女久久久久浪| 国产一区二区三区综合在线观看 | 国产精品久久久久久久电影| 综合色丁香网| 国产亚洲一区二区精品| 欧美老熟妇乱子伦牲交| 蜜臀久久99精品久久宅男| 色视频在线一区二区三区| 国产精品麻豆人妻色哟哟久久| 欧美三级亚洲精品| 亚州av有码| 国产精品99久久99久久久不卡 | 一级毛片电影观看| 乱码一卡2卡4卡精品| 日本黄大片高清| 国产男人的电影天堂91| 建设人人有责人人尽责人人享有的| 成人亚洲欧美一区二区av| 人人妻人人澡人人看| 一区二区三区乱码不卡18| tube8黄色片| 人成视频在线观看免费观看| 国产成人91sexporn| 国产69精品久久久久777片| 欧美变态另类bdsm刘玥| 免费高清在线观看视频在线观看| 激情五月婷婷亚洲| 女的被弄到高潮叫床怎么办| 欧美日本中文国产一区发布| 国产男女内射视频| 下体分泌物呈黄色| 午夜视频国产福利| 蜜臀久久99精品久久宅男| 18禁在线无遮挡免费观看视频| 欧美成人精品欧美一级黄| 黄片无遮挡物在线观看| 亚洲五月色婷婷综合| 国产在线视频一区二区| 一级二级三级毛片免费看| 精品亚洲乱码少妇综合久久| 制服诱惑二区| 嫩草影院入口| 欧美丝袜亚洲另类| 母亲3免费完整高清在线观看 | 热re99久久精品国产66热6| 国产片内射在线| 久久人人爽人人片av| 国产精品国产av在线观看| 欧美人与善性xxx| 国产一区二区在线观看av| 超碰97精品在线观看| 免费大片黄手机在线观看| 成人国产麻豆网| 久久韩国三级中文字幕| 十八禁高潮呻吟视频| 2022亚洲国产成人精品| 制服人妻中文乱码| 在线观看www视频免费| 少妇高潮的动态图| 日本vs欧美在线观看视频| av不卡在线播放| 性高湖久久久久久久久免费观看| 99热网站在线观看| 午夜福利影视在线免费观看| 免费人成在线观看视频色| 五月伊人婷婷丁香| 久久97久久精品| av黄色大香蕉| 国产女主播在线喷水免费视频网站| 成人漫画全彩无遮挡| 久久毛片免费看一区二区三区| 国产一区二区在线观看av| xxxhd国产人妻xxx| 国产不卡av网站在线观看| 91aial.com中文字幕在线观看| 亚洲成人一二三区av| 国产黄频视频在线观看| 人妻人人澡人人爽人人| 高清午夜精品一区二区三区| 免费av中文字幕在线| 久久人人爽人人片av| 国产成人freesex在线| 最新中文字幕久久久久| 久久 成人 亚洲| 在线观看人妻少妇| 精品人妻偷拍中文字幕| 黑人猛操日本美女一级片| 如何舔出高潮| 麻豆成人av视频| 男人操女人黄网站| 2021少妇久久久久久久久久久| 丝袜在线中文字幕| 国产精品国产三级专区第一集| 国产精品女同一区二区软件| 嘟嘟电影网在线观看| 成人亚洲欧美一区二区av| 亚洲av福利一区| 亚洲图色成人| 26uuu在线亚洲综合色| 2021少妇久久久久久久久久久| 亚洲久久久国产精品| 最近最新中文字幕免费大全7| 乱码一卡2卡4卡精品|