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

    基于REST的云工作流引擎的架構(gòu)設(shè)計

    2019-01-07 08:01:50夏懷婷潘金濤
    關(guān)鍵詞:租戶調(diào)用引擎

    夏懷婷, 潘金濤

    (中遠海運科技股份有限公司,上海 200135)

    0 引 言

    工作流引擎是企業(yè)將其分散的應(yīng)用連接起來整合成一個完整的流程應(yīng)用的調(diào)度工作。在傳統(tǒng)的工作流引擎系統(tǒng)方案中,企業(yè)內(nèi)所有需使用工作流引擎的應(yīng)用系統(tǒng)都必須購買并集成工作流引擎系統(tǒng),導(dǎo)致應(yīng)用過于復(fù)雜,且耦合度較高,不利于云端的部署,難以與不同結(jié)構(gòu)的應(yīng)用服務(wù)交互;同時,只能以流程為單位存儲工作流要素,無法以流程節(jié)點的層次提供工作流要素給客戶復(fù)用,難以滿足客戶對細(xì)節(jié)定制的需求。

    隨著企業(yè)內(nèi)的業(yè)務(wù)系統(tǒng)開始向云(尤其是私有云)中遷移,提供基于私有云的工作流引擎成為必然。在私有云中,可提供基于云的流程建模、流程執(zhí)行、流程監(jiān)控分析、流程管理和業(yè)務(wù)調(diào)用?;赗EST的工作流引擎在云中具有一定的優(yōu)勢,通過對云中的服務(wù)進行編制或編排,滿足企業(yè)內(nèi)各業(yè)務(wù)協(xié)作的需要。

    在云環(huán)境中搭建工作流引擎服務(wù)通常有2種方式:

    1) 結(jié)合云環(huán)境的特點,運用工作流技術(shù)實現(xiàn)云工作流引擎建模、執(zhí)行、管理和監(jiān)控等功能;

    2) 將現(xiàn)有的開源工作流引擎移植到云環(huán)境中。

    當(dāng)前的云工作流引擎系統(tǒng)大多采用第1種方式,這將帶來一些不必要的開銷。因此,本文采用第2種方式,即將開源工作流引擎移植到云環(huán)境中,在Activiti的基礎(chǔ)上設(shè)計基于REST(Representational State Transfer)的工作流引擎,使其適應(yīng)云端部署環(huán)境,根據(jù)RESTful服務(wù)中每個資源結(jié)點都可發(fā)布并接受訪問的特性,將流程、活動和實例等所有工作流要素都封裝為REST的資源,從而以流程節(jié)點的層次提供可復(fù)用的工作流要素。

    1 設(shè)計目標(biāo)

    云工作流引擎的設(shè)計目標(biāo)主要是將工作流引擎從應(yīng)用系統(tǒng)中解耦出來,形成一個獨立的服務(wù),從而降低系統(tǒng)的耦合性,提供更加靈活的服務(wù)支持,實現(xiàn)復(fù)雜度可控、獨立部署、技術(shù)選型靈活、服務(wù)容錯和按需獨立擴展等目標(biāo)。

    1) 復(fù)雜度可控:將整體應(yīng)用分解為一組服務(wù),功能總量沒有變化,但應(yīng)用程序已被分為體積小、復(fù)雜度低和可管理的微服務(wù)。每個服務(wù)專注于單一功能,由專注于該服務(wù)的團隊獨立開發(fā),可大大提高開發(fā)效率。

    2) 獨立部署:微服務(wù)架構(gòu)模式可實現(xiàn)每個微服務(wù)獨立部署,開發(fā)人員無需協(xié)調(diào)部署本地變更到服務(wù),這些變更經(jīng)過測試之后即可立即部署。同時,每個微服務(wù)在啟動方面比大型整體應(yīng)用快得多,使得發(fā)布更為高效,且會加速部署。

    3) 技術(shù)選型靈活:在微服務(wù)架構(gòu)模式下,技術(shù)選型是去中心化的。開發(fā)者可自由選擇任何符合服務(wù)API契約的技術(shù)。此外,由于服務(wù)較小,采用當(dāng)前的技術(shù)重寫舊服務(wù)將變得更為可行。

    4) 服務(wù)容錯:當(dāng)某一服務(wù)發(fā)生故障時,在單一整體應(yīng)用的傳統(tǒng)架構(gòu)模式下,故障很可能在整個應(yīng)用內(nèi)擴散,形成全局性的不可用;而在微服務(wù)架構(gòu)模式下,故障會被隔離在單個服務(wù)中,可通過超時重試、限流、降級和熔斷等機制實現(xiàn)服務(wù)的容錯。

    5) 按需獨立擴展:傳統(tǒng)單體應(yīng)用架構(gòu)必須以應(yīng)用為單位進行橫向擴展,在資源需求有沖突時會變得比較困難。引擎微服務(wù)化之后,可獨立于應(yīng)用服務(wù),使用負(fù)載均衡器進行自由擴展。此外,引擎服務(wù)可部署到最適合其資源需求的硬件上,而整體架構(gòu)中具有嚴(yán)重資源需求差異的組件(如CPU密集和內(nèi)存密集)必須部署在一起。

    2 架構(gòu)設(shè)計

    2.1 總體技術(shù)架構(gòu)設(shè)計

    整個云工作流引擎架構(gòu)基于云計算平臺開發(fā)部署,并由微服務(wù)、容器和BPM(Business Process Management)等若干技術(shù)組件構(gòu)成,其中:微服務(wù)分解BPM應(yīng)用系統(tǒng),將應(yīng)用與引擎微服務(wù)化;容器采用Docker技術(shù)實現(xiàn)微服務(wù)鏡像化;BPM組件實現(xiàn)BPM建模、執(zhí)行、管理和監(jiān)控等功能,這些功能必須基于“用戶權(quán)限隔離”底層機制,實現(xiàn)BPM云引擎多租戶隔離和交互要求。

    當(dāng)然,服務(wù)的平穩(wěn)運行離不開架構(gòu)的整體監(jiān)控和治理,包括服務(wù)注冊與發(fā)現(xiàn)、服務(wù)容器管理、服務(wù)編排、配置中心、安全管理和日志收集等。該工作流引擎的總體技術(shù)架構(gòu)見圖1。

    圖1 基于REST的云工作流引擎總體技術(shù)架構(gòu)

    2.2 關(guān)鍵開發(fā)技術(shù)

    2.2.1 Activiti

    Activiti是一個開源的工作流引擎,實現(xiàn)了BPMN 2.0規(guī)范,可發(fā)布設(shè)計好的流程定義,并通過API(Application Programming Interface)進行流程調(diào)度。Activiti采用流程虛擬機(Process Virtual Machine, PVM),支持BPMN2.0規(guī)范以外的流程格式,具有與外部服務(wù)良好集成的能力,服務(wù)接口清晰,已實現(xiàn)部分RESTful接口。

    2.2.2 RESTful

    圖2 面向資源的REST服務(wù)訪問

    圖2為面向資源的REST服務(wù)訪問。REST架構(gòu)風(fēng)格將一切都看作是資源,客戶端通過GET、PUT、POST和DELETE等4種操作實現(xiàn)與資源的交互。因此,在BPM私有云引擎的設(shè)計中,遵循該原理設(shè)計BPM引擎的API,并提供基于REST的API。

    2.2.3 Spring Boot

    Spring Boot用來簡化新Spring應(yīng)用的初始搭建和開發(fā)過程。該框架采用特定的方式配置,從而使開發(fā)人員不必定義樣板化的配置,可專注于應(yīng)用程序的邏輯。

    2.2.4 Spring Cloud

    Spring Cloud是一系列框架的有序集合,利用Spring Boot的開發(fā)便利性巧妙地簡化分布式系統(tǒng)基礎(chǔ)設(shè)施的開發(fā),服務(wù)發(fā)現(xiàn)注冊、配置中心、消息總線、負(fù)載均衡、斷路器和數(shù)據(jù)監(jiān)控等都可用Spring Boot的開發(fā)風(fēng)格做到一鍵式啟動和部署。

    2.3 SAAS服務(wù)關(guān)鍵功能實現(xiàn)方式設(shè)計

    2.3.1 用戶權(quán)限隔離

    SAAS服務(wù)的主要特性是支持多租戶應(yīng)用,其關(guān)鍵實現(xiàn)方式是數(shù)據(jù)隔離(包括組織內(nèi)的部門用戶數(shù)據(jù)和流程數(shù)據(jù))和客戶自服務(wù)(包括個性定制和管理隔離)。該設(shè)計通過租戶識別碼對多租戶進行數(shù)據(jù)管理,即將多個租戶存入同一個數(shù)據(jù)庫中,使用同一個Schema(即將數(shù)據(jù)保存在一個表格中,通過租戶的識別碼來區(qū)分)。

    圖3為用戶權(quán)限隔離的ER圖,組織的各個表中都有一個租戶識別碼,根據(jù)該識別碼實現(xiàn)組織內(nèi)用戶的隔離,不同租戶對各自的組織數(shù)據(jù)進行維護。在模型表和流程定義表中添加“租戶識別碼”,通過“租戶識別碼”字段實現(xiàn)對不同租戶流程定義的隔離,該“租戶識別碼”與組織表中的租戶識別碼相關(guān)聯(lián)。在流程實例表中添加字段“租戶識別碼”,活動實例表、工作任務(wù)表、流程轉(zhuǎn)移表和流程變量表等都通過“流程實例ID”與流程實例表相關(guān)聯(lián),因此無需添加租戶識別碼字段。

    圖3 用戶權(quán)限隔離的ER圖

    2.3.2 用戶數(shù)據(jù)同步

    每個涉及到用戶的系統(tǒng)都有一套用戶權(quán)限管理平臺或模塊,用來維護用戶在系統(tǒng)內(nèi)的功能、數(shù)據(jù)權(quán)限。采用的Activiti工作流引擎配套設(shè)計包括User和Group的Identify模塊,針對Activiti Identify用戶數(shù)據(jù)的同步,通過調(diào)用IdentifyService接口完成同步,即通過數(shù)據(jù)推送的方式將數(shù)據(jù)同步到Activiti的身份表中。

    Activiti的Identify模塊由用戶、用戶組和用戶與組關(guān)系組成(見圖4),因此接口內(nèi)容應(yīng)包括同步用戶信息、同步組信息和同步用戶與組關(guān)系信息等。

    圖4 Activiti用戶組關(guān)系圖

    用于用戶、用戶組及用戶組關(guān)系同步的,需開發(fā)的REST API為:

    1) POST/identity/user/{userId}:同步某個用戶數(shù)據(jù);

    2) POST/identity/group/{groupId}:同步某個組數(shù)據(jù);

    3) POST/identity/membership/{membershipId}:同步某個用戶組關(guān)系數(shù)據(jù);

    4) DELETE/identity/user/{userId}:刪除某個用戶數(shù)據(jù);

    5) DELETE/identity/group/{groupId}:刪除某個組數(shù)據(jù);

    6) DELETE/identity/membership/{membershipId}:刪除某個用戶組關(guān)系數(shù)據(jù)。

    2.3.3 REST API設(shè)計與實現(xiàn)方式

    圖5為Activiti引擎的系統(tǒng)服務(wù)結(jié)構(gòu)圖,給出了引擎提供的所有功能組件。ProcessEngineConfiguration是配置管理類,管理的對象包括ProcessEngine、XXservice和數(shù)據(jù)庫session等。對于ProcessEngineConfiguration的配置,Activiti默認(rèn)從activiti.cfg.xml中讀取,也可從Spring的配置文件中讀取。ProcessEngine提供有很多工作流方法的服務(wù),都是線程安全的,下面對各服務(wù)的功能進行介紹。

    圖5 Activiti引擎的系統(tǒng)服務(wù)結(jié)構(gòu)圖

    1) RepositoryService:提供對Repository(BPMN2.0 XML文件、表單定義文件和流程定義圖像文件等)的存取服務(wù)。

    2) RuntimeService:提供啟動流程、查詢流程實例和設(shè)置獲取流程實例變量等功能。此外,提供對流程部署、流程定義和流程實例的存取服務(wù)。

    3) TaskService:提供對用戶Task和Form的相關(guān)操作及運行時任務(wù)查詢、領(lǐng)取、完成、刪除和變量設(shè)置等功能。

    4) IdentityService:提供對Activiti系統(tǒng)中用戶和用戶組的管理功能。

    5) ManagementService:提供對Activiti流程引擎的管理和維護功能,這些功能不在工作流驅(qū)動的應(yīng)用程序中使用,主要用于Activiti系統(tǒng)的日常維護。

    6) HistoryService:用于獲取正在運行或已完成流程實例的信息,與 RuntimeService中獲取的流程信息不同,歷史信息包含已持久化存儲的永久信息,并已被針對查詢優(yōu)化。

    7) FormService:可存取啟動和完成任務(wù)所需的表單數(shù)據(jù)并根據(jù)需要渲染表單。

    按照RESTful風(fēng)格將上述服務(wù)提供的接口和訪問方法發(fā)布為Web資源,各服務(wù)對應(yīng)的REST API見圖6。

    圖6 各服務(wù)對應(yīng)的REST API

    以Repository的API為例,對各資源的具體操作類型作簡要說明。

    1) /repository/models

    GET:獲取所有模型

    POST:創(chuàng)建一個模型

    2) /repository/deployments

    GET:獲取所有已部署的流程

    POST:部署一個流程

    3) /repository/deployments/{deploymentId}

    GET:獲取某個部署信息

    DELETE:刪除某個部署信息

    4) /repository/deployments/{deploymentId}/resources

    GET:獲取某個部署下的資源列表

    5) /repository/deployments/{deploymentId}/resources/{resourceId}

    GET:獲取某個部署下的某個資源信息

    3 架構(gòu)部署

    云工作流引擎平臺的架構(gòu)部署包含注冊中心、配置中心、調(diào)用中心、部署中心、日志中心、監(jiān)控中心、追蹤中心和消息中心等8部分(見圖7)。

    圖7 架構(gòu)部署

    1) 注冊中心:用于注冊微服務(wù)相關(guān)配置信息的中心,實現(xiàn)服務(wù)發(fā)現(xiàn)和服務(wù)注冊,選用Eureka實現(xiàn)。

    2) 配置中心:用于管理微服務(wù)應(yīng)用程序所需的配置參數(shù),選用Spring Cloud Config實現(xiàn),通過Spring Cloud Bus實現(xiàn)動態(tài)的配置更新。

    3) 調(diào)用中心:即API網(wǎng)關(guān),用于提供給前端調(diào)用的統(tǒng)一入口,選用Zuul實現(xiàn)。

    4) 部署中心:用于編譯、打包微服務(wù)源碼并將其部署到Docker引擎中,選用Jenkins實現(xiàn)。

    5) 日志中心:用于收集和管理微服務(wù)應(yīng)用程序中產(chǎn)生的日志,選用ELK實現(xiàn)。

    6) 監(jiān)控中心:用于監(jiān)控微服務(wù)的實時運行狀況,選用zipkin實現(xiàn)。

    7) 追蹤中心:用于最終調(diào)用微服務(wù)的軌跡,選用sleuth實現(xiàn)。

    8) 消息中心:用于解耦微服務(wù)之間的調(diào)用關(guān)系,同步調(diào)用選用REST實現(xiàn),異步調(diào)用選用kafka實現(xiàn)。

    在實現(xiàn)工作流引擎的所有接口之后,由部署中心執(zhí)行編譯和打包操作,構(gòu)建成Docker鏡像,最后將其上傳到鏡像倉庫,以便后續(xù)從鏡像倉庫中下載指定的鏡像,運行相應(yīng)的Docker容器。

    在Docker鏡像上傳到鏡像倉庫之后,部署中心可在不同的運行環(huán)境下根據(jù)特定的鏡像啟動相應(yīng)的Docker容器。為便于描述,將該容器稱為“服務(wù)容器”,包含承載微服務(wù)的應(yīng)用程序及其配置文件。

    在服務(wù)容器啟動之后,自動從配置中心讀取相應(yīng)的配置信息并將其網(wǎng)絡(luò)地址等信息寫入注冊中心,該過程稱為“服務(wù)注冊”。服務(wù)容器與注冊中心通過一定的機制(例如心跳)通信,注冊中心若長時間無法與某服務(wù)容器通信,會注銷該實例,服務(wù)網(wǎng)絡(luò)地址變更時會重新寫入注冊中心。

    服務(wù)容器相互調(diào)用時,若鏈路的某個服務(wù)容器不可用或響應(yīng)時間太長,則調(diào)用該服務(wù)的鏈路會產(chǎn)生大量積壓,導(dǎo)致積壓蔓延,稱之為“雪崩效應(yīng)”。為防止雪崩,當(dāng)調(diào)用某個服務(wù)之后發(fā)現(xiàn)無法完成時,主動撤銷連接,返回fallback的響應(yīng)信息,防止雪崩,該過程稱為“服務(wù)熔斷”。當(dāng)系統(tǒng)壓力過大時,進行限流或關(guān)停不重要的業(yè)務(wù),為主要業(yè)務(wù)讓出資源,該過程稱為“服務(wù)降級”。

    用戶在通過瀏覽器或移動端訪問引擎系統(tǒng)時,請求首先通過負(fù)載均衡進入服務(wù)網(wǎng)關(guān),因為其是所有請求調(diào)用的中心、系統(tǒng)的唯一入口,也稱其為“調(diào)用中心”。調(diào)用中心雖然是不帶任何業(yè)務(wù)的中心,但需確保其所做的事情足夠少,使其不會成為整個應(yīng)用系統(tǒng)調(diào)用的瓶頸,客戶端的認(rèn)證、訪問控制、監(jiān)控和緩存等公共邏輯可抽象到網(wǎng)關(guān)中實現(xiàn)。

    調(diào)用中心隨后連接注冊中心,并通過服務(wù)名稱從注冊中心獲取服務(wù)所在的IP地址和端口號(即服務(wù)地址),該過程稱為“服務(wù)發(fā)現(xiàn)”。由此,調(diào)用中心可根據(jù)服務(wù)地址,以反向代理的方式調(diào)用具體的服務(wù)容器,該過程稱為“服務(wù)調(diào)用”。

    在服務(wù)容器中可能會觸發(fā)一些事件,這些事件將以消息的方式寫入消息中心,以便其他服務(wù)對消息中心進行監(jiān)聽并從中獲取相應(yīng)的消息。該方案可解決服務(wù)之間的耦合問題,同時能將同步調(diào)用轉(zhuǎn)為異步調(diào)用,提高整個應(yīng)用系統(tǒng)的吞吐率。

    服務(wù)容器在運行時會產(chǎn)生大量的日志,可將這些日志統(tǒng)一寫入日志中心,并能在日志中心提供的控制臺上查詢具體的日志信息。此外,日志中心能幫助快速定位和分析系統(tǒng)出現(xiàn)的異常情況。

    為判斷服務(wù)容器的運行是否正常,可借助監(jiān)控中心輸出的圖形化數(shù)據(jù)來實現(xiàn)。監(jiān)控中心不斷地收集服務(wù)容器的運行狀態(tài),包括CPU、內(nèi)存、硬盤、網(wǎng)絡(luò)及應(yīng)用程序的JVM內(nèi)存使用情況等。

    由于微服務(wù)很難切得干凈,除了向外部提供以外,微服務(wù)之間難免會出現(xiàn)少量的調(diào)用關(guān)系,可將每次調(diào)用產(chǎn)生的相關(guān)信息寫入追蹤中心,通過追蹤中心提供的圖形化界面查看服務(wù)之間的調(diào)用軌跡和產(chǎn)生的調(diào)用延時,從而分析出服務(wù)調(diào)用產(chǎn)生的性能瓶頸。

    4 架構(gòu)應(yīng)用

    簡單搭建1個Eureka服務(wù)(服務(wù)注冊中心)、2個應(yīng)用服務(wù)(OA Service)、2個工作流引擎服務(wù)(Workflow Service)和1個API網(wǎng)關(guān)(Zuul Server),驗證上述架構(gòu)設(shè)計的可行性(見圖8)。所有服務(wù)都需注冊到Eureka服務(wù)上,以便服務(wù)間調(diào)用。API網(wǎng)關(guān)是系統(tǒng)唯一的入口,主要實現(xiàn)服務(wù)請求路由、負(fù)載均衡和服務(wù)熔斷等功能。這里與/oa相關(guān)的請求全部轉(zhuǎn)發(fā)到OA Service上,與/workflow相關(guān)的請求全部轉(zhuǎn)發(fā)到Workflow Service上,并選擇其中一臺服務(wù)(Server A或Server B)進行轉(zhuǎn)發(fā),實現(xiàn)服務(wù)的負(fù)載均衡。同時,OA Service與Workflow Service之間也可通過REST方式調(diào)用對方的API,如應(yīng)用服務(wù)可調(diào)用引擎服務(wù)的用戶數(shù)據(jù)同步接口實現(xiàn)用戶信息同步,應(yīng)用服務(wù)的用戶待辦數(shù)據(jù)可調(diào)用引擎服務(wù)獲取用戶任務(wù)的接口,應(yīng)用服務(wù)的流程跟蹤可調(diào)用引擎流程跟蹤接口等。

    單體架構(gòu)應(yīng)用(見圖9)就是將所有功能(OA接口和工作流引擎接口)集成到一起組成一個整體應(yīng)用,進行集中式管理,簡單直接,基本上不會重復(fù)開發(fā),但會帶來開發(fā)效率低、代碼維護難、部署不靈活、穩(wěn)定性不高和可擴展性不強等問題。

    圖8 微服務(wù)架構(gòu)應(yīng)用

    圖9 單體架構(gòu)應(yīng)用

    由2種應(yīng)用的對比可知,微服務(wù)架構(gòu)應(yīng)用將工作流引擎從應(yīng)用系統(tǒng)中成功地分離出來,由原來的1個完整服務(wù)(Application Server)拆分為2個服務(wù)(OA Service和Workflow Service), OA Service只需實現(xiàn)業(yè)務(wù)相關(guān)功能接口,工作流引擎相關(guān)接口交由Workflow Service完成,從而實現(xiàn)2個服務(wù)的獨立部署和擴展。

    5 結(jié) 語

    隨著云計算的發(fā)展和企業(yè)集約化、一體化、集中化的發(fā)展,云工作流引擎成為企業(yè)建立私有云工作流引擎的發(fā)展必然,給企業(yè)帶來更多的經(jīng)濟效益,包括硬件的成本得以降低、硬件資源的使用率大幅提升、平臺維護人員大幅減少、數(shù)據(jù)的管理和管控更加集中;同時,云工作流引擎可帶來系統(tǒng)的高可用、可擴展性和自動伸縮等能力。但是,云工作流引擎是分布式系統(tǒng),會提高部署和管理的復(fù)雜性,從而對開發(fā)者提出更高的要求。

    猜你喜歡
    租戶調(diào)用引擎
    核電項目物項調(diào)用管理的應(yīng)用研究
    LabWindows/CVI下基于ActiveX技術(shù)的Excel調(diào)用
    藍谷: “涉藍”新引擎
    商周刊(2017年22期)2017-11-09 05:08:31
    基于MVC模式的多租戶portlet應(yīng)用研究*
    基于系統(tǒng)調(diào)用的惡意軟件檢測技術(shù)研究
    無形的引擎
    河南電力(2015年5期)2015-06-08 06:01:46
    基于Cocos2d引擎的PuzzleGame開發(fā)
    租戶是大爺
    特別文摘(2014年17期)2014-09-18 01:31:21
    企業(yè)多租戶云存儲平臺的設(shè)計與實現(xiàn)
    SaaS模式下多租戶數(shù)據(jù)比較存儲模式研究
    精品国产乱码久久久久久男人| 国产av在哪里看| 国产一区二区在线av高清观看| 老司机靠b影院| 身体一侧抽搐| 亚洲中文日韩欧美视频| 成年女人毛片免费观看观看9| 一区在线观看完整版| 国内毛片毛片毛片毛片毛片| 91麻豆精品激情在线观看国产 | 日韩欧美国产一区二区入口| 亚洲色图综合在线观看| 免费不卡黄色视频| 久99久视频精品免费| 桃红色精品国产亚洲av| 一个人免费在线观看的高清视频| 一二三四在线观看免费中文在| 国产人伦9x9x在线观看| 久久草成人影院| 亚洲视频免费观看视频| 黑人巨大精品欧美一区二区mp4| 精品久久久久久久久久免费视频 | 国产成人啪精品午夜网站| 一进一出抽搐动态| av网站免费在线观看视频| 国产午夜精品久久久久久| 免费少妇av软件| 久久婷婷成人综合色麻豆| 高潮久久久久久久久久久不卡| 久久这里只有精品19| 91成年电影在线观看| av欧美777| 午夜视频精品福利| 老司机亚洲免费影院| 级片在线观看| 亚洲欧美激情综合另类| 日韩人妻精品一区2区三区| 99在线人妻在线中文字幕| 在线视频色国产色| 亚洲中文字幕日韩| 久久精品国产综合久久久| 天堂影院成人在线观看| 99精品久久久久人妻精品| 亚洲九九香蕉| 人人妻人人爽人人添夜夜欢视频| 国产深夜福利视频在线观看| 9191精品国产免费久久| 日韩欧美在线二视频| 久久久国产成人免费| 久久性视频一级片| 叶爱在线成人免费视频播放| 亚洲,欧美精品.| 日韩精品中文字幕看吧| 午夜日韩欧美国产| 中文字幕色久视频| 天天添夜夜摸| 亚洲 国产 在线| 老司机在亚洲福利影院| 两性午夜刺激爽爽歪歪视频在线观看 | 色婷婷久久久亚洲欧美| 欧美一级毛片孕妇| 久久精品成人免费网站| 久久人妻福利社区极品人妻图片| 久久香蕉国产精品| 精品乱码久久久久久99久播| 丰满的人妻完整版| 天堂动漫精品| 国产一卡二卡三卡精品| 午夜a级毛片| 日韩精品免费视频一区二区三区| 国产又色又爽无遮挡免费看| 亚洲伊人色综图| 欧美最黄视频在线播放免费 | 欧美另类亚洲清纯唯美| 在线观看日韩欧美| 五月开心婷婷网| 国产一卡二卡三卡精品| 久久久久亚洲av毛片大全| 老汉色∧v一级毛片| 亚洲三区欧美一区| 亚洲精品一卡2卡三卡4卡5卡| 亚洲自偷自拍图片 自拍| 9191精品国产免费久久| 两个人看的免费小视频| 婷婷丁香在线五月| 99在线视频只有这里精品首页| 满18在线观看网站| 欧美日韩中文字幕国产精品一区二区三区 | 久久久久国内视频| 免费女性裸体啪啪无遮挡网站| 黄色视频不卡| 一个人免费在线观看的高清视频| 老汉色av国产亚洲站长工具| 这个男人来自地球电影免费观看| 久久亚洲真实| 少妇裸体淫交视频免费看高清 | 亚洲欧美激情在线| 手机成人av网站| 国产99久久九九免费精品| 淫妇啪啪啪对白视频| 精品一区二区三区av网在线观看| 久久九九热精品免费| 国产精品久久久久久人妻精品电影| 十八禁网站免费在线| 亚洲av成人av| 黄色视频不卡| 深夜精品福利| 欧美激情 高清一区二区三区| 欧美老熟妇乱子伦牲交| 99在线人妻在线中文字幕| 亚洲精品美女久久久久99蜜臀| 午夜免费成人在线视频| 精品国产亚洲在线| 777久久人妻少妇嫩草av网站| 亚洲va日本ⅴa欧美va伊人久久| 亚洲专区字幕在线| 香蕉久久夜色| 制服人妻中文乱码| 夫妻午夜视频| 老司机午夜福利在线观看视频| 老司机午夜十八禁免费视频| 亚洲欧美激情综合另类| 欧美成人免费av一区二区三区| 日本三级黄在线观看| 亚洲男人的天堂狠狠| 亚洲情色 制服丝袜| 一级毛片女人18水好多| 夜夜躁狠狠躁天天躁| 黄片播放在线免费| 怎么达到女性高潮| 国产99久久九九免费精品| 天堂影院成人在线观看| x7x7x7水蜜桃| 99香蕉大伊视频| 三级毛片av免费| 99香蕉大伊视频| 欧美日韩一级在线毛片| 国产精品偷伦视频观看了| 成人亚洲精品av一区二区 | 曰老女人黄片| 在线观看66精品国产| 亚洲人成网站在线播放欧美日韩| 丝袜在线中文字幕| 久久人人97超碰香蕉20202| 婷婷精品国产亚洲av在线| 久久久国产欧美日韩av| 久久久国产欧美日韩av| 亚洲美女黄片视频| 日本五十路高清| 亚洲专区中文字幕在线| 一本大道久久a久久精品| 国产1区2区3区精品| 麻豆一二三区av精品| 国产成人免费无遮挡视频| av国产精品久久久久影院| 久久青草综合色| 国产精品电影一区二区三区| 脱女人内裤的视频| 欧美最黄视频在线播放免费 | 亚洲色图综合在线观看| 国产激情欧美一区二区| 亚洲在线自拍视频| 91老司机精品| 黄色a级毛片大全视频| 看免费av毛片| 一级毛片高清免费大全| 成人精品一区二区免费| 曰老女人黄片| a级毛片黄视频| 黄网站色视频无遮挡免费观看| 一进一出抽搐gif免费好疼 | 极品教师在线免费播放| 美女高潮到喷水免费观看| 91成年电影在线观看| 国产精品av久久久久免费| 精品福利永久在线观看| 制服诱惑二区| 日韩一卡2卡3卡4卡2021年| 国产亚洲欧美精品永久| 久久久久久久久免费视频了| 亚洲午夜理论影院| 亚洲专区字幕在线| 亚洲精品av麻豆狂野| 亚洲情色 制服丝袜| 免费在线观看日本一区| 在线国产一区二区在线| 侵犯人妻中文字幕一二三四区| 亚洲色图av天堂| 热re99久久精品国产66热6| 成年版毛片免费区| 国产乱人伦免费视频| 妹子高潮喷水视频| 97碰自拍视频| 丁香欧美五月| av视频免费观看在线观看| 日本黄色日本黄色录像| 亚洲七黄色美女视频| 亚洲欧美一区二区三区黑人| 18禁美女被吸乳视频| 制服诱惑二区| 大码成人一级视频| 级片在线观看| 咕卡用的链子| 麻豆成人av在线观看| 12—13女人毛片做爰片一| 每晚都被弄得嗷嗷叫到高潮| 亚洲精品在线美女| 日韩免费av在线播放| 涩涩av久久男人的天堂| 久久精品国产清高在天天线| a级片在线免费高清观看视频| 亚洲熟妇熟女久久| 国内毛片毛片毛片毛片毛片| 一边摸一边抽搐一进一小说| 99在线视频只有这里精品首页| 国产成人欧美在线观看| 最新美女视频免费是黄的| 久久国产亚洲av麻豆专区| 免费在线观看视频国产中文字幕亚洲| 亚洲精品成人av观看孕妇| 自线自在国产av| 国产蜜桃级精品一区二区三区| 亚洲熟妇中文字幕五十中出 | 亚洲免费av在线视频| 免费久久久久久久精品成人欧美视频| 久久影院123| 黄色毛片三级朝国网站| 免费在线观看视频国产中文字幕亚洲| 在线观看66精品国产| 女人被躁到高潮嗷嗷叫费观| 国产精品久久久av美女十八| 男女做爰动态图高潮gif福利片 | 色老头精品视频在线观看| 一边摸一边做爽爽视频免费| 动漫黄色视频在线观看| 人人妻,人人澡人人爽秒播| 国产男靠女视频免费网站| 亚洲男人天堂网一区| 午夜福利一区二区在线看| 女生性感内裤真人,穿戴方法视频| 亚洲国产精品一区二区三区在线| 99热国产这里只有精品6| 美女扒开内裤让男人捅视频| 9191精品国产免费久久| 一区二区三区激情视频| 久久欧美精品欧美久久欧美| 亚洲国产毛片av蜜桃av| 免费在线观看完整版高清| 欧美日韩亚洲综合一区二区三区_| 欧美色视频一区免费| 欧美日韩亚洲国产一区二区在线观看| 亚洲国产中文字幕在线视频| 极品人妻少妇av视频| 美女 人体艺术 gogo| 欧美成狂野欧美在线观看| 美女扒开内裤让男人捅视频| 日日夜夜操网爽| 999久久久精品免费观看国产| 国产蜜桃级精品一区二区三区| 午夜亚洲福利在线播放| 波多野结衣一区麻豆| 久久久国产一区二区| 成人精品一区二区免费| 亚洲成人免费电影在线观看| 村上凉子中文字幕在线| 国产午夜精品久久久久久| 一个人观看的视频www高清免费观看 | 亚洲av成人av| 久久久久久久久久久久大奶| 很黄的视频免费| 国产人伦9x9x在线观看| 亚洲一区二区三区不卡视频| 亚洲欧美激情在线| 日本欧美视频一区| 90打野战视频偷拍视频| 18禁裸乳无遮挡免费网站照片 | 午夜91福利影院| 欧美日韩黄片免| 久热这里只有精品99| 在线看a的网站| 国产精品秋霞免费鲁丝片| 久久久久久久久免费视频了| 99国产精品一区二区三区| 悠悠久久av| 精品人妻在线不人妻| 成在线人永久免费视频| 两性夫妻黄色片| 久久久国产一区二区| 亚洲中文日韩欧美视频| 欧美亚洲日本最大视频资源| 亚洲第一av免费看| 一个人免费在线观看的高清视频| 69精品国产乱码久久久| 欧美日韩国产mv在线观看视频| 亚洲国产精品sss在线观看 | 这个男人来自地球电影免费观看| 熟女少妇亚洲综合色aaa.| 亚洲自偷自拍图片 自拍| 午夜视频精品福利| 国产蜜桃级精品一区二区三区| 精品免费久久久久久久清纯| 在线观看日韩欧美| 最新美女视频免费是黄的| 一二三四在线观看免费中文在| 欧美日本亚洲视频在线播放| 长腿黑丝高跟| 久久久久九九精品影院| 夫妻午夜视频| 777久久人妻少妇嫩草av网站| 亚洲国产看品久久| 国产亚洲精品久久久久5区| 国产国语露脸激情在线看| 熟女少妇亚洲综合色aaa.| 亚洲午夜理论影院| 亚洲精品国产区一区二| 国产精品一区二区三区四区久久 | 日本撒尿小便嘘嘘汇集6| 亚洲在线自拍视频| 久热爱精品视频在线9| 久久人人精品亚洲av| 久久人妻福利社区极品人妻图片| aaaaa片日本免费| 精品国产国语对白av| 午夜免费成人在线视频| 91av网站免费观看| 欧美一级毛片孕妇| 欧美 亚洲 国产 日韩一| 久久国产乱子伦精品免费另类| 叶爱在线成人免费视频播放| 日本撒尿小便嘘嘘汇集6| 国产精品一区二区免费欧美| 天堂俺去俺来也www色官网| 午夜福利,免费看| 又大又爽又粗| 高潮久久久久久久久久久不卡| 欧美成人午夜精品| 在线观看免费视频网站a站| 99精国产麻豆久久婷婷| 久久久国产成人精品二区 | av欧美777| www.www免费av| 久久久国产一区二区| 一边摸一边抽搐一进一出视频| 波多野结衣av一区二区av| 99精国产麻豆久久婷婷| 无人区码免费观看不卡| 中文字幕高清在线视频| 91字幕亚洲| 国产亚洲欧美在线一区二区| 国产极品粉嫩免费观看在线| 欧美最黄视频在线播放免费 | x7x7x7水蜜桃| 色综合婷婷激情| 日本五十路高清| 亚洲性夜色夜夜综合| bbb黄色大片| 可以在线观看毛片的网站| 激情视频va一区二区三区| 国产91精品成人一区二区三区| av网站免费在线观看视频| 亚洲一区高清亚洲精品| 高清欧美精品videossex| 巨乳人妻的诱惑在线观看| 精品免费久久久久久久清纯| 精品日产1卡2卡| 国产精品99久久99久久久不卡| 欧美老熟妇乱子伦牲交| 日韩欧美免费精品| 国产成人欧美在线观看| 欧美日韩瑟瑟在线播放| 亚洲国产毛片av蜜桃av| 日韩人妻精品一区2区三区| 搡老乐熟女国产| 天天躁夜夜躁狠狠躁躁| 丝袜美腿诱惑在线| 久久这里只有精品19| 国产亚洲精品一区二区www| 亚洲国产精品sss在线观看 | 三级毛片av免费| 好看av亚洲va欧美ⅴa在| 国产野战对白在线观看| 少妇裸体淫交视频免费看高清 | 国产精品爽爽va在线观看网站 | 久久久久久久久中文| 黑人巨大精品欧美一区二区mp4| 亚洲激情在线av| 亚洲五月婷婷丁香| 欧美最黄视频在线播放免费 | 国产精品久久久人人做人人爽| 1024视频免费在线观看| 黄片播放在线免费| 97碰自拍视频| 国产亚洲精品久久久久5区| 精品久久蜜臀av无| 一边摸一边做爽爽视频免费| 亚洲精品美女久久久久99蜜臀| 国产欧美日韩一区二区精品| 在线观看免费高清a一片| 亚洲国产精品999在线| 久久久久国内视频| 男男h啪啪无遮挡| 日韩成人在线观看一区二区三区| 电影成人av| 高潮久久久久久久久久久不卡| 动漫黄色视频在线观看| 亚洲熟妇熟女久久| 亚洲成a人片在线一区二区| 久久精品亚洲熟妇少妇任你| 91成人精品电影| 久久中文字幕人妻熟女| 婷婷丁香在线五月| 悠悠久久av| 日日干狠狠操夜夜爽| 亚洲欧洲精品一区二区精品久久久| 亚洲中文字幕日韩| 国产精品九九99| 成年女人毛片免费观看观看9| 亚洲精品一卡2卡三卡4卡5卡| 天堂动漫精品| e午夜精品久久久久久久| 老司机在亚洲福利影院| 中文字幕人妻丝袜一区二区| 老司机午夜十八禁免费视频| 亚洲国产精品合色在线| 亚洲熟妇中文字幕五十中出 | 麻豆成人av在线观看| 国产一区二区激情短视频| 国产区一区二久久| 国产精品国产高清国产av| 久久精品国产清高在天天线| 真人一进一出gif抽搐免费| 色综合婷婷激情| 美女午夜性视频免费| 日韩高清综合在线| 一级毛片精品| 欧美日本亚洲视频在线播放| 日韩av在线大香蕉| 精品久久久久久久久久免费视频 | 久久中文看片网| 黄色片一级片一级黄色片| 免费在线观看视频国产中文字幕亚洲| 国产免费av片在线观看野外av| 国产av又大| 香蕉久久夜色| 日韩欧美一区二区三区在线观看| 真人一进一出gif抽搐免费| 亚洲欧美一区二区三区久久| 精品一品国产午夜福利视频| 成年人黄色毛片网站| 中文字幕人妻丝袜制服| 成人三级做爰电影| 12—13女人毛片做爰片一| cao死你这个sao货| 精品一区二区三区av网在线观看| 国产深夜福利视频在线观看| 一个人观看的视频www高清免费观看 | 婷婷丁香在线五月| 亚洲 欧美 日韩 在线 免费| 久久中文字幕人妻熟女| 精品一区二区三区av网在线观看| 成人三级黄色视频| 欧美色视频一区免费| 又黄又爽又免费观看的视频| 亚洲成av片中文字幕在线观看| aaaaa片日本免费| 国产精品1区2区在线观看.| 欧美激情极品国产一区二区三区| 成人亚洲精品av一区二区 | 久久久久久久久久久久大奶| 亚洲成人精品中文字幕电影 | 久久草成人影院| 丝袜在线中文字幕| 交换朋友夫妻互换小说| 啦啦啦在线免费观看视频4| 亚洲国产看品久久| 人人妻人人澡人人看| 一边摸一边做爽爽视频免费| 91av网站免费观看| 日日夜夜操网爽| 亚洲视频免费观看视频| 91麻豆av在线| 亚洲伊人色综图| 波多野结衣一区麻豆| 欧美日韩精品网址| 99精国产麻豆久久婷婷| 一级毛片女人18水好多| 男女下面进入的视频免费午夜 | 中文字幕最新亚洲高清| 最好的美女福利视频网| 后天国语完整版免费观看| 老熟妇乱子伦视频在线观看| 国产精品爽爽va在线观看网站 | 精品高清国产在线一区| 亚洲激情在线av| 精品久久蜜臀av无| 97碰自拍视频| 制服诱惑二区| 亚洲专区国产一区二区| 久久久久久大精品| 国产aⅴ精品一区二区三区波| 精品久久久久久,| 亚洲一卡2卡3卡4卡5卡精品中文| 老熟妇乱子伦视频在线观看| 亚洲狠狠婷婷综合久久图片| 亚洲欧美日韩高清在线视频| av欧美777| 成人国语在线视频| 999久久久国产精品视频| 桃红色精品国产亚洲av| 日韩精品中文字幕看吧| 天天添夜夜摸| 亚洲精品久久午夜乱码| 国产精品久久久人人做人人爽| 99久久精品国产亚洲精品| 欧美日韩黄片免| 在线观看午夜福利视频| 亚洲一区中文字幕在线| 国产精品自产拍在线观看55亚洲| 91老司机精品| 精品人妻在线不人妻| 欧美黄色淫秽网站| 免费在线观看影片大全网站| 老鸭窝网址在线观看| 91九色精品人成在线观看| 国产成年人精品一区二区 | 午夜精品国产一区二区电影| 又大又爽又粗| 岛国在线观看网站| 国产精品爽爽va在线观看网站 | 麻豆成人av在线观看| 日本a在线网址| 亚洲午夜理论影院| 欧美日本中文国产一区发布| 男女高潮啪啪啪动态图| 日韩成人在线观看一区二区三区| 在线观看免费午夜福利视频| 在线观看免费视频日本深夜| 亚洲精品中文字幕一二三四区| 久久久久久久久中文| 亚洲熟妇中文字幕五十中出 | 欧美av亚洲av综合av国产av| 亚洲成a人片在线一区二区| 亚洲自拍偷在线| 美女 人体艺术 gogo| 国产精品综合久久久久久久免费 | 久久国产精品男人的天堂亚洲| 69精品国产乱码久久久| 国产一区二区三区视频了| 十八禁人妻一区二区| 97人妻天天添夜夜摸| 欧美在线一区亚洲| 色老头精品视频在线观看| 国产成人精品久久二区二区91| 香蕉久久夜色| 久久精品人人爽人人爽视色| 怎么达到女性高潮| 日韩欧美三级三区| 久久影院123| a级片在线免费高清观看视频| 伦理电影免费视频| 丰满的人妻完整版| 黄色丝袜av网址大全| avwww免费| 法律面前人人平等表现在哪些方面| 日本欧美视频一区| 精品久久蜜臀av无| 无遮挡黄片免费观看| av片东京热男人的天堂| av天堂在线播放| 精品无人区乱码1区二区| 久久欧美精品欧美久久欧美| 国产成人一区二区三区免费视频网站| 女人被躁到高潮嗷嗷叫费观| 久久九九热精品免费| 国产一区二区三区视频了| 国产色视频综合| 夜夜看夜夜爽夜夜摸 | 两人在一起打扑克的视频| 久久久久亚洲av毛片大全| 亚洲人成伊人成综合网2020| 99久久人妻综合| 免费在线观看亚洲国产| 神马国产精品三级电影在线观看 | 国产欧美日韩综合在线一区二区| 三上悠亚av全集在线观看| 欧美日韩一级在线毛片| 伊人久久大香线蕉亚洲五| aaaaa片日本免费| 乱人伦中国视频| 国产麻豆69| 欧美日本亚洲视频在线播放| 国产亚洲欧美98| 亚洲国产毛片av蜜桃av| 亚洲欧美精品综合久久99| 巨乳人妻的诱惑在线观看| 成人三级做爰电影| 男女下面进入的视频免费午夜 | 国产精品久久久久成人av| 国产成人精品久久二区二区91| 女性被躁到高潮视频| 夜夜爽天天搞| 又紧又爽又黄一区二区| 久久精品亚洲av国产电影网| 国产成人欧美| 国产精品美女特级片免费视频播放器 | 国产在线观看jvid| 婷婷丁香在线五月| 久久精品国产亚洲av香蕉五月| 国产aⅴ精品一区二区三区波| 在线免费观看的www视频| 91老司机精品| 天堂√8在线中文| 成人精品一区二区免费| 久久中文字幕一级| 欧美日韩瑟瑟在线播放|