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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

Dubbo使用_尚硅谷视频学习笔记

發(fā)布時間:2023/12/31 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Dubbo使用_尚硅谷视频学习笔记 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

文章目錄

  • Dubbo
  • 基礎(chǔ)知識
    • 分布式基礎(chǔ)理論
      • 1.1)、什么是分布式系統(tǒng)?
      • 1.2)、發(fā)展演變
      • 1.3)、RPC
    • 2、dubbo核心概念
      • 2.1)、簡介
      • 2.2)、基本概念
    • 3、dubbo環(huán)境搭建
      • 3.1)、【windows】-安裝zookeeper
      • 3.2)、【windows】-安裝dubbo-admin管理控制臺
      • 3.3)、【linux】-安裝zookeeper
      • 3.4)、【linux】-安裝dubbo-admin管理控制臺
    • 4、dubbo-helloworld
      • 4.1)、提出需求
      • 4.2)、工程架構(gòu)
      • 4.3)、創(chuàng)建模塊
      • 4.4)、使用dubbo改造
    • 5、監(jiān)控中心
      • 5.1)、dubbo-admin
    • 5.2)、dubbo-monitor-simple
    • 6、整合SpringBoot
  • dubbo配置
    • 1、配置原則
    • 2、重試次數(shù)
    • 3、超時時間
    • 4、版本號
  • 高可用
    • 1、zookeeper宕機(jī)與dubbo直連
    • 2、集群下dubbo負(fù)載均衡配置
    • 3、整合hystrix,服務(wù)熔斷與降級處理
      • 1、服務(wù)降級
      • 2、集群容錯
      • 3、整合hystrix
  • dubbo原理
    • 1、RPC原理
    • 2、netty通信原理
    • 3、dubbo原理
      • 1、dubbo原理 -框架設(shè)計
      • 2、dubbo原理 -啟動解析、加載配置信息
      • 3、dubbo原理 -服務(wù)暴露
      • 4、dubbo原理 -服務(wù)引用
      • 5、dubbo原理 -服務(wù)調(diào)用


Dubbo

基礎(chǔ)知識

分布式基礎(chǔ)理論

1.1)、什么是分布式系統(tǒng)?

《分布式系統(tǒng)原理與范型》定義:
“分布式系統(tǒng)是若干獨(dú)立計算機(jī)的集合,這些計算機(jī)對于用戶來說就像單個相關(guān)系統(tǒng)”
分布式系統(tǒng)(distributed system)是建立在網(wǎng)絡(luò)之上的軟件系統(tǒng)。

隨著互聯(lián)網(wǎng)的發(fā)展,網(wǎng)站應(yīng)用的規(guī)模不斷擴(kuò)大,常規(guī)的垂直應(yīng)用架構(gòu)已無法應(yīng)對,分布式服務(wù)架構(gòu)以及流動計算架構(gòu)勢在必行,亟需一個治理系統(tǒng)確保架構(gòu)有條不紊的演進(jìn)。

1.2)、發(fā)展演變

單一應(yīng)用架構(gòu)
當(dāng)網(wǎng)站流量很小時,只需一個應(yīng)用,將所有功能都部署在一起,以減少部署節(jié)點(diǎn)和成本。此時,用于簡化增刪改查工作量的數(shù)據(jù)訪問框架(ORM)是關(guān)鍵。

適用于小型網(wǎng)站,小型管理系統(tǒng),將所有功能都部署到一個功能里,簡單易用。
缺點(diǎn):
1、性能擴(kuò)展比較難
2、協(xié)同開發(fā)問題
3、不利于升級維護(hù)

垂直應(yīng)用架構(gòu)
當(dāng)訪問量逐漸增大,單一應(yīng)用增加機(jī)器帶來的加速度越來越小,將應(yīng)用拆成互不相干的幾個應(yīng)用,以提升效率。此時,用于加速前端頁面開發(fā)的Web框架(MVC)是關(guān)鍵。

通過切分業(yè)務(wù)來實(shí)現(xiàn)各個模塊獨(dú)立部署,降低了維護(hù)和部署的難度,團(tuán)隊各司其職更易管理,性能擴(kuò)展也更方便,更有針對性。
缺點(diǎn): 公用模塊無法重復(fù)利用,開發(fā)性的浪費(fèi)

分布式服務(wù)架構(gòu)
當(dāng)垂直應(yīng)用越來越多,應(yīng)用之間交互不可避免,將核心業(yè)務(wù)抽取出來,作為獨(dú)立的服務(wù),逐漸形成穩(wěn)定的服務(wù)中心,使前端應(yīng)用能更快速的響應(yīng)多變的市場需求。此時,用于提高業(yè)務(wù)復(fù)用及整合的**分布式服務(wù)框架(RPC)**是關(guān)鍵。

流動計算架構(gòu)
當(dāng)服務(wù)越來越多,容量的評估,小服務(wù)資源的浪費(fèi)等問題逐漸顯現(xiàn),此時需增加一個調(diào)度中心基于訪問壓力實(shí)時管理集群容量,提高集群利用率。此時,用于提高機(jī)器利用率的資源調(diào)度和治理中心 (SOA)[ Service Oriented Architecture] 是關(guān)鍵。

1.3)、RPC

什么叫RPC

RPC【Remote Procedure Call】是指遠(yuǎn)程過程調(diào)用,是一種進(jìn)程間通信方式,他是一種技術(shù)的思想,而不是規(guī)范。它允許程序調(diào)用另一個地址空間(通常是共享網(wǎng)絡(luò)的另一臺機(jī)器上)的過程或函數(shù),它允許程序調(diào)用另一個地址空間(通常是共享網(wǎng)絡(luò)的另一臺機(jī)器上)的過程或函數(shù),編寫的調(diào)用代碼基本相同。

RPC基本原理


RPC兩個核心模塊:通訊,序列化。

2、dubbo核心概念

2.1)、簡介

Apache Dubbo (incubating) |?d?b??| 是一款高性能、輕量級的開源Java RPC框架,它提供了三大核心能力:面向接口的遠(yuǎn)程方法調(diào)用,智能容錯和負(fù)載均衡,以及服務(wù)自動注冊和發(fā)現(xiàn)。
官網(wǎng):
http://dubbo.apache.org/

2.2)、基本概念


服務(wù)提供者(Provider):暴露服務(wù)的服務(wù)提供方,服務(wù)提供者在啟動時,向注冊中心注冊自己提供的服務(wù)。

服務(wù)消費(fèi)者(Consumer): 調(diào)用遠(yuǎn)程服務(wù)的服務(wù)消費(fèi)方,服務(wù)消費(fèi)者在啟動時,向注冊中心訂閱自己所需的服務(wù),服務(wù)消費(fèi)者,從提供者地址列表中,基于軟負(fù)載均衡算法,選一臺提供者進(jìn)行調(diào)用,如果調(diào)用失敗,再選另一臺調(diào)用。

注冊中心(Registry):注冊中心返回服務(wù)提供者地址列表給消費(fèi)者,如果有變更,注冊中心將基于長連接推送變更數(shù)據(jù)給消費(fèi)者

監(jiān)控中心(Monitor):服務(wù)消費(fèi)者和提供者,在內(nèi)存中累計調(diào)用次數(shù)和調(diào)用時間,定時每分鐘發(fā)送一次統(tǒng)計數(shù)據(jù)到監(jiān)控中心

? 調(diào)用關(guān)系說明

  • ? 服務(wù)容器負(fù)責(zé)啟動,加載,運(yùn)行服務(wù)提供者。
  • ? 服務(wù)提供者在啟動時,向注冊中心注冊自己提供的服務(wù)。
  • ? 服務(wù)消費(fèi)者在啟動時,向注冊中心訂閱自己所需的服務(wù)。
  • ? 注冊中心返回服務(wù)提供者地址列表給消費(fèi)者,如果有變更,注冊中心將基于長連接推送變更數(shù)據(jù)給消費(fèi)者。
  • ? 服務(wù)消費(fèi)者,從提供者地址列表中,基于軟負(fù)載均衡算法,選一臺提供者進(jìn)行調(diào)用,如果調(diào)用失敗,再選另一臺調(diào)用。
  • ? 服務(wù)消費(fèi)者和提供者,在內(nèi)存中累計調(diào)用次數(shù)和調(diào)用時間,定時每分鐘發(fā)送一次統(tǒng)計數(shù)據(jù)到監(jiān)控中心。

3、dubbo環(huán)境搭建

3.1)、【windows】-安裝zookeeper

  • 下載zookeeper
    網(wǎng)址 https://archive.apache.org/dist/zookeeper/zookeeper-3.4.13/

  • 解壓zookeeper
    解壓運(yùn)行zkServer.cmd ,初次運(yùn)行會報錯,沒有zoo.cfg配置文件

  • 修改zoo.cfg配置文件
    將conf下的zoo_sample.cfg復(fù)制一份改名為zoo.cfg即可。
    注意幾個重要位置:
    dataDir=./ 臨時數(shù)據(jù)存儲的目錄(可寫相對路徑)
    clientPort=2181 zookeeper的端口號
    修改完成后再次啟動zookeeper

  • 使用zkCli.cmd測試
    ls /:列出zookeeper根下保存的所有節(jié)點(diǎn)
    create –e /atguigu 123:創(chuàng)建一個atguigu節(jié)點(diǎn),值為123
    get /atguigu:獲取/atguigu節(jié)點(diǎn)的值

  • 3.2)、【windows】-安裝dubbo-admin管理控制臺

    dubbo本身并不是一個服務(wù)軟件。它其實(shí)就是一個jar包能夠幫你的java程序連接到zookeeper,并利用zookeeper消費(fèi)、提供服務(wù)。所以你不用在Linux上啟動什么dubbo服務(wù)。
    但是為了讓用戶更好的管理監(jiān)控眾多的dubbo服務(wù),官方提供了一個可視化的監(jiān)控程序,不過這個監(jiān)控即使不裝也不影響使用。

  • 下載dubbo-admin
    https://github.com/apache/incubator-dubbo-ops

  • 進(jìn)入目錄,修改dubbo-admin配置
    修改 src\main\resources\application.properties 指定zookeeper地址

  • 打包dubbo-admin
    mvn clean package -Dmaven.test.skip=true

  • 運(yùn)行dubbo-admin
    java -jar dubbo-admin-0.0.1-SNAPSHOT.jar
    注意:【有可能控制臺看著啟動了,但是網(wǎng)頁打不開,需要在控制臺按下ctrl+c即可】
    默認(rèn)使用root/root 登陸

  • 3.3)、【linux】-安裝zookeeper

    1、安裝jdk

  • 下載jdk
    http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

    不要使用wget命令獲取jdk鏈接,這是默認(rèn)不同意,導(dǎo)致下載來的jdk壓縮內(nèi)容錯誤

  • 上傳到服務(wù)器并解壓

  • 設(shè)置環(huán)境變量
    /usr/local/java/jdk1.8.0_171

    文件末尾加入下面配置
    export JAVA_HOME=/usr/local/java/jdk1.8.0_171
    export JRE_HOME=JAVAHOME/jreexportCLASSPATH=.:{JAVA_HOME}/jre export CLASSPATH=.:JAVAH?OME/jreexportCLASSPATH=.:{JAVA_HOME}/lib:JREHOME/libexportPATH={JRE_HOME}/lib export PATH=JREH?OME/libexportPATH={JAVA_HOME}/bin:$PATH

  • 使環(huán)境變量生效&測試JDK

  • 2、安裝zookeeper

  • 下載zookeeper
    網(wǎng)址 https://archive.apache.org/dist/zookeeper/zookeeper-3.4.11/
    wget https://archive.apache.org/dist/zookeeper/zookeeper-3.4.11/zookeeper-3.4.11.tar.gz

  • 解壓

  • 移動到指定位置并改名為zookeeper

  • 3、開機(jī)啟動zookeeper

  • -復(fù)制如下腳本
  • #!/bin/bash #chkconfig:2345 20 90 #description:zookeeper #processname:zookeeper ZK_PATH=/usr/local/zookeeper export JAVA_HOME=/usr/local/java/jdk1.8.0_171 case $1 instart) sh $ZK_PATH/bin/zkServer.sh start;;stop) sh $ZK_PATH/bin/zkServer.sh stop;;status) sh $ZK_PATH/bin/zkServer.sh status;;restart) sh $ZK_PATH/bin/zkServer.sh restart;;*) echo "require start|stop|status|restart" ;; esac
  • -把腳本注冊為Service

  • -增加權(quán)限

  • 4、配置zookeeper

  • 初始化zookeeper配置文件
    拷貝/usr/local/zookeeper/conf/zoo_sample.cfg
    到同一個目錄下改個名字叫zoo.cfg

  • 啟動zookeeper

  • 3.4)、【linux】-安裝dubbo-admin管理控制臺

    1、安裝Tomcat8(舊版dubbo-admin是war,新版是jar不需要安裝Tomcat)

  • 下載Tomcat8并解壓
    https://tomcat.apache.org/download-80.cgi
    wget http://mirrors.shu.edu.cn/apache/tomcat/tomcat-8/v8.5.32/bin/apache-tomcat-8.5.32.tar.gz

  • 解壓移動到指定位置

  • 開機(jī)啟動tomcat8

    復(fù)制如下腳本

  • #!/bin/bash #chkconfig:2345 21 90 #description:apache-tomcat-8 #processname:apache-tomcat-8 CATALANA_HOME=/opt/apache-tomcat-8.5.32 export JAVA_HOME=/opt/java/jdk1.8.0_171 case $1 in start)echo "Starting Tomcat..." $CATALANA_HOME/bin/startup.sh;;stop)echo "Stopping Tomcat..." $CATALANA_HOME/bin/shutdown.sh;;restart)echo "Stopping Tomcat..." $CATALANA_HOME/bin/shutdown.shsleep 2echo echo "Starting Tomcat..." $CATALANA_HOME/bin/startup.sh;; *)echo "Usage: tomcat {start|stop|restart}" ;; esac
  • 注冊服務(wù)&添加權(quán)限

  • 啟動服務(wù)&訪問tomcat測試

  • 2、安裝dubbo-admin
    dubbo本身并不是一個服務(wù)軟件。它其實(shí)就是一個jar包能夠幫你的java程序連接到zookeeper,并利用zookeeper消費(fèi)、提供服務(wù)。所以你不用在Linux上啟動什么dubbo服務(wù)。
    但是為了讓用戶更好的管理監(jiān)控眾多的dubbo服務(wù),官方提供了一個可視化的監(jiān)控程序,不過這個監(jiān)控即使不裝也不影響使用。

  • 下載dubbo-admin
    https://github.com/apache/incubator-dubbo-ops

  • 進(jìn)入目錄,修改dubbo-admin配置
    修改 src\main\resources\application.properties 指定zookeeper地址

  • 打包dubbo-admin
    mvn clean package -Dmaven.test.skip=true

  • 運(yùn)行dubbo-admin
    java -jar dubbo-admin-0.0.1-SNAPSHOT.jar
    默認(rèn)使用root/root 登陸

  • 4、dubbo-helloworld

    4.1)、提出需求

    某個電商系統(tǒng),訂單服務(wù)需要調(diào)用用戶服務(wù)獲取某個用戶的所有地址;
    我們現(xiàn)在 需要創(chuàng)建兩個服務(wù)模塊進(jìn)行測試

    模塊功能
    訂單服務(wù)web模塊創(chuàng)建訂單等
    用戶服務(wù)service模塊查詢用戶地址等

    測試預(yù)期結(jié)果:
    訂單服務(wù)web模塊在A服務(wù)器,用戶服務(wù)模塊在B服務(wù)器,A可以遠(yuǎn)程調(diào)用B的功能。

    4.2)、工程架構(gòu)

    根據(jù) dubbo《服務(wù)化最佳實(shí)踐》

    1、分包
    建議將服務(wù)接口,服務(wù)模型,服務(wù)異常等均放在 API 包中,因為服務(wù)模型及異常也是 API 的一部分,同時,這樣做也符合分包原則:重用發(fā)布等價原則(REP),共同重用原則(CRP)。
    如果需要,也可以考慮在 API 包中放置一份 spring 的引用配置,這樣使用方,只需在 spring 加載過程中引用此配置即可,配置建議放在模塊的包目錄下,以免沖突,如:
    com/alibaba/china/xxx/dubbo-reference.xml。

    2、粒度
    服務(wù)接口盡可能大粒度,每個服務(wù)方法應(yīng)代表一個功能,而不是某功能的一個步驟,否則將面臨分布式事務(wù)問題,Dubbo 暫未提供分布式事務(wù)支持。
    服務(wù)接口建議以業(yè)務(wù)場景為單位劃分,并對相近業(yè)務(wù)做抽象,防止接口數(shù)量爆炸。
    不建議使用過于抽象的通用接口,如:Map query(Map),這樣的接口沒有明確語義,會給后期維護(hù)帶來不便。

    4.3)、創(chuàng)建模塊

    1、gmall-interface:公共接口層(model,service,exception…)
    作用:定義公共接口,也可以導(dǎo)入公共依賴

  • Bean模型
  • public class UserAddress implements Serializable{private Integer id;private String userAddress;private String userId;private String consignee;private String phoneNum;private String isDefault; }
  • Service接口
    UserService
  • public List<UserAddress> getUserAddressList(String userId)

    2、gmall-user:用戶模塊(對用戶接口的實(shí)現(xiàn))

  • pom.xml
  • <dependencies><dependency><groupId>com.atguigu.dubbo</groupId><artifactId>gmall-interface</artifactId><version>0.0.1-SNAPSHOT</version></dependency></dependencies>
  • Service
  • public class UserServiceImpl implements UserService {@Overridepublic List<UserAddress> getUserAddressList(String userId) {// TODO Auto-generated method stubreturn userAddressDao.getUserAddressById(userId);}}

    3 、gmall-order-web:訂單模塊(調(diào)用用戶模塊)

  • pom.xml
  • <dependencies><dependency><groupId>com.atguigu.dubbo</groupId><artifactId>gmall-interface</artifactId><version>0.0.1-SNAPSHOT</version></dependency></dependencies>
  • 測試
  • public class OrderService {UserService userService;/*** 初始化訂單,查詢用戶的所有地址并返回* @param userId* @return*/public List<UserAddress> initOrder(String userId){return userService.getUserAddressList(userId);}}

    現(xiàn)在這樣是無法進(jìn)行調(diào)用的。我們gmall-order-web引入了gmall-interface,但是interface的實(shí)現(xiàn)是gmall-user,我們并沒有引入,而且實(shí)際他可能還在別的服務(wù)器中。

    4.4)、使用dubbo改造

    1、改造gmall-user作為服務(wù)提供者

  • 引入dubbo
  • <!-- 引入dubbo --><dependency><groupId>com.alibaba</groupId><artifactId>dubbo</artifactId><version>2.6.2</version></dependency><!-- 由于我們使用zookeeper作為注冊中心,所以需要操作zookeeperdubbo 2.6以前的版本引入zkclient操作zookeeper dubbo 2.6及以后的版本引入curator操作zookeeper下面兩個zk客戶端根據(jù)dubbo版本2選1即可--><dependency><groupId>com.101tec</groupId><artifactId>zkclient</artifactId><version>0.10</version></dependency><!-- curator-framework --><dependency><groupId>org.apache.curator</groupId><artifactId>curator-framework</artifactId><version>2.12.0</version></dependency>
  • 配置提供者
  • <!--當(dāng)前應(yīng)用的名字 --><dubbo:application name="gmall-user"></dubbo:application><!--指定注冊中心的地址 --><dubbo:registry address="zookeeper://118.24.44.169:2181" /><!--使用dubbo協(xié)議,將服務(wù)暴露在20880端口 --><dubbo:protocol name="dubbo" port="20880" /><!-- 指定需要暴露的服務(wù) --><dubbo:service interface="com.atguigu.gmall.service.UserService" ref="userServiceImpl" />
  • 啟動服務(wù)
  • public static void main(String[] args) throws IOException {ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("classpath:spring-beans.xml");System.in.read(); }

    2、改造gmall-order-web作為服務(wù)消費(fèi)者

  • 引入dubbo
  • <!-- 引入dubbo --><dependency><groupId>com.alibaba</groupId><artifactId>dubbo</artifactId><version>2.6.2</version></dependency><!-- 由于我們使用zookeeper作為注冊中心,所以需要引入zkclient和curator操作zookeeper --><dependency><groupId>com.101tec</groupId><artifactId>zkclient</artifactId><version>0.10</version></dependency><!-- curator-framework --><dependency><groupId>org.apache.curator</groupId><artifactId>curator-framework</artifactId><version>2.12.0</version></dependency>
  • 配置消費(fèi)者信息
  • <!-- 應(yīng)用名 --><dubbo:application name="gmall-order-web"></dubbo:application><!-- 指定注冊中心地址 --><dubbo:registry address="zookeeper://118.24.44.169:2181" /><!-- 生成遠(yuǎn)程服務(wù)代理,可以和本地bean一樣使用demoService --><dubbo:reference id="userService" interface="com.atguigu.gmall.service.UserService"></dubbo:reference>

    3、測試調(diào)用
    訪問gmall-order-web的initOrder請求,會調(diào)用UserService獲取用戶地址;
    調(diào)用成功。說明我們order已經(jīng)可以調(diào)用遠(yuǎn)程的UserService了;

    4、注解版

  • 服務(wù)提供方
  • <dubbo:application name="gmall-user"></dubbo:application><dubbo:registry address="zookeeper://118.24.44.169:2181" /><dubbo:protocol name="dubbo" port="20880" /> <dubbo:annotation package="com.atguigu.gmall.user.impl"/> import com.alibaba.dubbo.config.annotation.Service; import com.atguigu.gmall.bean.UserAddress; import com.atguigu.gmall.service.UserService; import com.atguigu.gmall.user.mapper.UserAddressMapper;@Service //使用dubbo提供的service注解,注冊暴露服務(wù) public class UserServiceImpl implements UserService {@AutowiredUserAddressMapper userAddressMapper;
  • 服務(wù)消費(fèi)方
  • <dubbo:application name="gmall-order-web"></dubbo:application> <dubbo:registry address="zookeeper://118.24.44.169:2181" /> <dubbo:annotation package="com.atguigu.gmall.order.controller"/> @Controller public class OrderController {@Reference //使用dubbo提供的reference注解引用遠(yuǎn)程服務(wù)UserService userService;

    5、監(jiān)控中心

    5.1)、dubbo-admin

    圖形化的服務(wù)管理頁面;安裝時需要指定注冊中心地址,即可從注冊中心中獲取到所有的提供者/消費(fèi)者進(jìn)行配置管理

    5.2)、dubbo-monitor-simple

    簡單的監(jiān)控中心;
    1、安裝

  • 下載 dubbo-ops
    https://github.com/apache/incubator-dubbo-ops

  • 修改配置指定注冊中心地址
    進(jìn)入 dubbo-monitor-simple\src\main\resources\conf
    修改 dubbo.properties文件

  • 打包dubbo-monitor-simple
    mvn clean package -Dmaven.test.skip=true

  • 解壓 tar.gz 文件,并運(yùn)行start.bat

    如果缺少servlet-api,自行導(dǎo)入servlet-api再訪問監(jiān)控中心

  • 啟動訪問8080

  • 2、監(jiān)控中心配置
    所有服務(wù)配置連接監(jiān)控中心,進(jìn)行監(jiān)控統(tǒng)計

    <!-- 監(jiān)控中心協(xié)議,如果為protocol="registry",表示從注冊中心發(fā)現(xiàn)監(jiān)控中心地址,否則直連監(jiān)控中心 --><dubbo:monitor protocol="registry"></dubbo:monitor>

    Simple Monitor 掛掉不會影響到 Consumer 和 Provider 之間的調(diào)用,所以用于生產(chǎn)環(huán)境不會有風(fēng)險。

    Simple Monitor 采用磁盤存儲統(tǒng)計信息,請注意安裝機(jī)器的磁盤限制,如果要集群,建議用mount共享磁盤。

    6、整合SpringBoot

  • 引入spring-boot-starter以及dubbo和curator的依賴

    <dependency><groupId>com.alibaba.boot</groupId><artifactId>dubbo-spring-boot-starter</artifactId><version>0.2.0</version> </dependency>

    注意starter版本適配:

  • 配置application.properties
    提供者配置:

    dubbo.application.name=gmall-user dubbo.registry.protocol=zookeeper dubbo.registry.address=192.168.67.159:2181 dubbo.scan.base-package=com.atguigu.gmall dubbo.protocol.name=dubbo

    application.name就是服務(wù)名,不能跟別的dubbo提供端重復(fù)
    registry.protocol 是指定注冊中心協(xié)議
    registry.address 是注冊中心的地址加端口號
    protocol.name 是分布式固定是dubbo,不要改。
    base-package 注解方式要掃描的包

    消費(fèi)者配置:

    dubbo.application.name=gmall-order-web dubbo.registry.protocol=zookeeper dubbo.registry.address=192.168.67.159:2181 dubbo.scan.base-package=com.atguigu.gmall dubbo.protocol.name=dubbo
  • dubbo注解
    @Service、@Reference
    【如果沒有在配置中寫dubbo.scan.base-package,還需要使用@EnableDubbo注解】

  • dubbo配置

    1、配置原則


    JVM 啟動 -D 參數(shù)優(yōu)先,這樣可以使用戶在部署和啟動時進(jìn)行參數(shù)重寫,比如在啟動時需改變協(xié)議的端口。

    XML 次之,如果在 XML 中有配置,則 dubbo.properties 中的相應(yīng)配置項無效。

    Properties 最后,相當(dāng)于缺省值,只有 XML 沒有配置時,dubbo.properties 的相應(yīng)配置項才會生效,通常用于共享公共配置,比如應(yīng)用名。

    2、重試次數(shù)

    失敗自動切換,當(dāng)出現(xiàn)失敗,重試其它服務(wù)器,但重試會帶來更長延遲??赏ㄟ^ retries=“2” 來設(shè)置重試次數(shù)(不含第一次)。

    重試次數(shù)配置如下:

    <dubbo:service retries="2" /><dubbo:reference retries="2" /><dubbo:reference><dubbo:method name="findFoo" retries="2" /> </dubbo:reference>

    3、超時時間

    由于網(wǎng)絡(luò)或服務(wù)端不可靠,會導(dǎo)致調(diào)用出現(xiàn)一種不確定的中間狀態(tài)(超時)。為了避免超時導(dǎo)致客戶端資源(線程)掛起耗盡,必須設(shè)置超時時間。

  • Dubbo消費(fèi)端
  • 全局超時配置 <dubbo:consumer timeout="5000" />指定接口以及特定方法超時配置 <dubbo:reference interface="com.foo.BarService" timeout="2000"><dubbo:method name="sayHello" timeout="3000" /> </dubbo:reference>
  • Dubbo服務(wù)端
  • 全局超時配置 <dubbo:provider timeout="5000" />指定接口以及特定方法超時配置 <dubbo:provider interface="com.foo.BarService" timeout="2000"><dubbo:method name="sayHello" timeout="3000" /> </dubbo:provider>
  • 配置原則
    dubbo推薦在Provider上盡量多配置Consumer端屬性:
    1、作服務(wù)的提供者,比服務(wù)使用方更清楚服務(wù)性能參數(shù),如調(diào)用的超時時間,合理的重試次數(shù),等等
    2、在Provider配置后,Consumer不配置則會使用Provider的配置值,即Provider配置可以作為Consumer的缺省值。否則,Consumer會使用Consumer端的全局設(shè)置,這對于Provider不可控的,并且往往是不合理的
  • 配置的覆蓋規(guī)則:

  • 方法級配置別優(yōu)于接口級別,即小Scope優(yōu)先
  • Consumer端配置 優(yōu)于 Provider配置 優(yōu)于 全局配置,
  • 最后是Dubbo Hard Code的配置值(見配置文檔)
  • 4、版本號

    當(dāng)一個接口實(shí)現(xiàn),出現(xiàn)不兼容升級時,可以用版本號過渡,版本號不同的服務(wù)相互間不引用。
    可以按照以下的步驟進(jìn)行版本遷移:
    在低壓力時間段,先升級一半提供者為新版本
    再將所有消費(fèi)者升級為新版本
    然后將剩下的一半提供者升級為新版本

    老版本服務(wù)提供者配置: <dubbo:service interface="com.foo.BarService" version="1.0.0" />新版本服務(wù)提供者配置: <dubbo:service interface="com.foo.BarService" version="2.0.0" />老版本服務(wù)消費(fèi)者配置: <dubbo:reference id="barService" interface="com.foo.BarService" version="1.0.0" />新版本服務(wù)消費(fèi)者配置: <dubbo:reference id="barService" interface="com.foo.BarService" version="2.0.0" />如果不需要區(qū)分版本,可以按照以下的方式配置: <dubbo:reference id="barService" interface="com.foo.BarService" version="*" />

    高可用

    1、zookeeper宕機(jī)與dubbo直連

    現(xiàn)象:zookeeper注冊中心宕機(jī),還可以消費(fèi)dubbo暴露的服務(wù)。
    原因:
    健壯性

    • ? 監(jiān)控中心宕掉不影響使用,只是丟失部分采樣數(shù)據(jù)
    • ? 數(shù)據(jù)庫宕掉后,注冊中心仍能通過緩存提供服務(wù)列表查詢,但不能注冊新服務(wù)
    • ? 注冊中心對等集群,任意一臺宕掉后,將自動切換到另一臺
    • ? 注冊中心全部宕掉后,服務(wù)提供者和服務(wù)消費(fèi)者仍能通過本地緩存通訊
    • ? 服務(wù)提供者無狀態(tài),任意一臺宕掉后,不影響使用
    • ? 服務(wù)提供者全部宕掉后,服務(wù)消費(fèi)者應(yīng)用將無法使用,并無限次重連等待服務(wù)提供者恢復(fù)

    高可用:通過設(shè)計,減少系統(tǒng)不能提供服務(wù)的時間;

    2、集群下dubbo負(fù)載均衡配置

    在集群負(fù)載均衡時,Dubbo 提供了多種均衡策略,缺省為 random 隨機(jī)調(diào)用。

    負(fù)載均衡策略

    Random LoadBalance 隨機(jī),按權(quán)重設(shè)置隨機(jī)概率。 在一個截面上碰撞的概率高,但調(diào)用量越大分布越均勻,而且按概率使用權(quán)重后也比較均勻,有利于動態(tài)調(diào)整提供者權(quán)重。RoundRobin LoadBalance 輪循,按公約后的權(quán)重設(shè)置輪循比率。 存在慢的提供者累積請求的問題,比如:第二臺機(jī)器很慢,但沒掛,當(dāng)請求調(diào)到第二臺時就卡在那,久而久之,所有請求都卡在調(diào)到第二臺上。LeastActive LoadBalance 最少活躍調(diào)用數(shù),相同活躍數(shù)的隨機(jī),活躍數(shù)指調(diào)用前后計數(shù)差。 使慢的提供者收到更少請求,因為越慢的提供者的調(diào)用前后計數(shù)差會越大。ConsistentHash LoadBalance 一致性 Hash,相同參數(shù)的請求總是發(fā)到同一提供者。 當(dāng)某一臺提供者掛時,原本發(fā)往該提供者的請求,基于虛擬節(jié)點(diǎn),平攤到其它提供者,不會引起劇烈變動。算法參見:http://en.wikipedia.org/wiki/Consistent_hashing 缺省只對第一個參數(shù) Hash,如果要修改,請配置 <dubbo:parameter key="hash.arguments" value="0,1" /> 缺省用 160 份虛擬節(jié)點(diǎn),如果要修改,請配置 <dubbo:parameter key="hash.nodes" value="320" />

    3、整合hystrix,服務(wù)熔斷與降級處理

    1、服務(wù)降級

    什么是服務(wù)降級?
    當(dāng)服務(wù)器壓力劇增的情況下,根據(jù)實(shí)際業(yè)務(wù)情況及流量,對一些服務(wù)和頁面有策略的不處理或換種簡單的方式處理,從而釋放服務(wù)器資源以保證核心交易正常運(yùn)作或高效運(yùn)作。
    可以通過服務(wù)降級功能臨時屏蔽某個出錯的非關(guān)鍵服務(wù),并定義降級后的返回策略。
    向注冊中心寫入動態(tài)配置覆蓋規(guī)則:

    RegistryFactory registryFactory = ExtensionLoader.getExtensionLoader(RegistryFactory.class).getAdaptiveExtension(); Registry registry = registryFactory.getRegistry(URL.valueOf("zookeeper://10.20.153.10:2181")); registry.register(URL.valueOf("override://0.0.0.0/com.foo.BarService?category=configurators&dynamic=false&application=foo&mock=force:return+null"));

    其中:

    • ? mock=force:return+null 表示消費(fèi)方對該服務(wù)的方法調(diào)用都直接返回 null 值,不發(fā)起遠(yuǎn)程調(diào)用。用來屏蔽不重要服務(wù)不可用時對調(diào)用方的影響。
    • ? 還可以改為 mock=fail:return+null 表示消費(fèi)方對該服務(wù)的方法調(diào)用在失敗后,再返回 null 值,不拋異常。用來容忍不重要服務(wù)不穩(wěn)定時對調(diào)用方的影響。

    2、集群容錯

    在集群調(diào)用失敗時,Dubbo 提供了多種容錯方案,缺省為 failover 重試

    集群容錯模式

    • Failover Cluster
      失敗自動切換,當(dāng)出現(xiàn)失敗,重試其它服務(wù)器。通常用于讀操作,但重試會帶來更長延遲??赏ㄟ^ retries=“2” 來設(shè)置重試次數(shù)(不含第一次)。
    重試次數(shù)配置如下: <dubbo:service retries="2" /><dubbo:reference retries="2" /><dubbo:reference><dubbo:method name="findFoo" retries="2" /> </dubbo:reference>
    • Failfast Cluster
      快速失敗,只發(fā)起一次調(diào)用,失敗立即報錯。通常用于非冪等性的寫操作,比如新增記錄。
    • Failsafe Cluster
      失敗安全,出現(xiàn)異常時,直接忽略。通常用于寫入審計日志等操作。
    • Failback Cluster
      失敗自動恢復(fù),后臺記錄失敗請求,定時重發(fā)。通常用于消息通知操作。
    • Forking Cluster
      并行調(diào)用多個服務(wù)器,只要一個成功即返回。通常用于實(shí)時性要求較高的讀操作,但需要浪費(fèi)更多服務(wù)資源??赏ㄟ^ forks=“2” 來設(shè)置最大并行數(shù)。
    • Broadcast Cluster
      廣播調(diào)用所有提供者,逐個調(diào)用,任意一臺報錯則報錯 [2]。通常用于通知所有提供者更新緩存或日志等本地資源信息。

    集群模式配置
    按照以下示例在服務(wù)提供方和消費(fèi)方配置集群模式

    <dubbo:service cluster="failsafe" /><dubbo:reference cluster="failsafe" />

    3、整合hystrix

    Hystrix 旨在通過控制那些訪問遠(yuǎn)程系統(tǒng)、服務(wù)和第三方庫的節(jié)點(diǎn),從而對延遲和故障提供更強(qiáng)大的容錯能力。Hystrix具備擁有回退機(jī)制和斷路器功能的線程和信號隔離,請求緩存和請求打包,以及監(jiān)控和配置等功能

    1、配置spring-cloud-starter-netflix-hystrix

    spring boot官方提供了對hystrix的集成,直接在pom.xml里加入依賴:

    <dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-hystrix</artifactId><version>1.4.4.RELEASE</version></dependency>

    然后在Application類上增加@EnableHystrix來啟用hystrix starter:

    @SpringBootApplication @EnableHystrix public class ProviderApplication {

    2、配置Provider端
    在Dubbo的Provider上增加@HystrixCommand配置,這樣子調(diào)用就會經(jīng)過Hystrix代理。

    @Service(version = "1.0.0") public class HelloServiceImpl implements HelloService {@HystrixCommand(commandProperties = {@HystrixProperty(name = "circuitBreaker.requestVolumeThreshold", value = "10"),@HystrixProperty(name = "execution.isolation.thread.timeoutInMilliseconds", value = "2000") })@Overridepublic String sayHello(String name) {// System.out.println("async provider received: " + name);// return "annotation: hello, " + name;throw new RuntimeException("Exception to show hystrix enabled.");} }

    3、配置Consumer端
    對于Consumer端,則可以增加一層method調(diào)用,并在method上配置@HystrixCommand。當(dāng)調(diào)用出錯時,會走到fallbackMethod = "reliable"的調(diào)用里。

    @Reference(version = "1.0.0")private HelloService demoService;@HystrixCommand(fallbackMethod = "reliable")public String doSayHello(String name) {return demoService.sayHello(name);}public String reliable(String name) {return "hystrix fallback value";}

    dubbo原理

    1、RPC原理

    一次完整的RPC調(diào)用流程(同步調(diào)用,異步另說)如下:
    1)服務(wù)消費(fèi)方(client)調(diào)用以本地調(diào)用方式調(diào)用服務(wù);
    2)client stub接收到調(diào)用后負(fù)責(zé)將方法、參數(shù)等組裝成能夠進(jìn)行網(wǎng)絡(luò)傳輸?shù)南Ⅲw;
    3)client stub找到服務(wù)地址,并將消息發(fā)送到服務(wù)端;
    4)server stub收到消息后進(jìn)行解碼;
    5)server stub根據(jù)解碼結(jié)果調(diào)用本地的服務(wù);
    6)本地服務(wù)執(zhí)行并將結(jié)果返回給server stub;
    7)server stub將返回結(jié)果打包成消息并發(fā)送至消費(fèi)方;
    8)client stub接收到消息,并進(jìn)行解碼;
    9)服務(wù)消費(fèi)方得到最終結(jié)果。
    RPC框架的目標(biāo)就是要2~8這些步驟都封裝起來,這些細(xì)節(jié)對用戶來說是透明的,不可見的。

    2、netty通信原理

    Netty是一個異步事件驅(qū)動的網(wǎng)絡(luò)應(yīng)用程序框架, 用于快速開發(fā)可維護(hù)的高性能協(xié)議服務(wù)器和客戶端。它極大地簡化并簡化了TCP和UDP套接字服務(wù)器等網(wǎng)絡(luò)編程。

    BIO:(Blocking IO)

    NIO (Non-Blocking IO)

    Selector 一般稱 為選擇器 ,也可以翻譯為 多路復(fù)用器,
    Connect(連接就緒)、Accept(接受就緒)、Read(讀就緒)、Write(寫就緒)
    Netty基本原理:

    3、dubbo原理

    1、dubbo原理 -框架設(shè)計

    • ? config 配置層:對外配置接口,以 ServiceConfig, ReferenceConfig 為中心,可以直接初始化配置類,也可以通過 spring 解析配置生成配置類
    • ? proxy 服務(wù)代理層:服務(wù)接口透明代理,生成服務(wù)的客戶端 Stub 和服務(wù)器端 Skeleton, 以 ServiceProxy 為中心,擴(kuò)展接口為 ProxyFactory
    • ? registry 注冊中心層:封裝服務(wù)地址的注冊與發(fā)現(xiàn),以服務(wù) URL 為中心,擴(kuò)展接口為 RegistryFactory, Registry, RegistryService
    • ? cluster 路由層:封裝多個提供者的路由及負(fù)載均衡,并橋接注冊中心,以 Invoker 為中心,擴(kuò)展接口為 Cluster, Directory, Router, LoadBalance
    • ? monitor 監(jiān)控層:RPC 調(diào)用次數(shù)和調(diào)用時間監(jiān)控,以 Statistics 為中心,擴(kuò)展接口為 MonitorFactory, Monitor, MonitorService
    • ? protocol 遠(yuǎn)程調(diào)用層:封裝 RPC 調(diào)用,以 Invocation, Result 為中心,擴(kuò)展接口為 Protocol, Invoker, Exporter
    • ? exchange 信息交換層:封裝請求響應(yīng)模式,同步轉(zhuǎn)異步,以 Request, Response 為中心,擴(kuò)展接口為 Exchanger, ExchangeChannel, ExchangeClient, ExchangeServer
    • ? transport 網(wǎng)絡(luò)傳輸層:抽象 mina 和 netty 為統(tǒng)一接口,以 Message 為中心,擴(kuò)展接口為 Channel, Transporter, Client, Server, Codec
    • ? serialize 數(shù)據(jù)序列化層:可復(fù)用的一些工具,擴(kuò)展接口為 Serialization, ObjectInput, ObjectOutput, ThreadPool

    2、dubbo原理 -啟動解析、加載配置信息

    3、dubbo原理 -服務(wù)暴露

    4、dubbo原理 -服務(wù)引用

    5、dubbo原理 -服務(wù)調(diào)用

    總結(jié)

    以上是生活随笔為你收集整理的Dubbo使用_尚硅谷视频学习笔记的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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

    一区免费视频 | 一级黄色网址 | 91九色视频国产 | 日韩伦理片一区二区三区 | 婷婷精品国产一区二区三区日韩 | 午夜12点 | 91九色网站 | 国产精品久久久久一区二区三区共 | 日韩精品久久中文字幕 | 久久国产精品99久久久久久老狼 | 免费视频网 | 国产一区二区三区高清播放 | 91亚洲网站 | 亚洲国内精品在线 | 国产二级视频 | 91在线免费播放视频 | 四虎影视成人永久免费观看亚洲欧美 | 激情视频久久 | 日日爽夜夜操 | 亚洲视频1区2区 | 成人av午夜| 国产1区2| 成人黄色大片网站 | 81精品国产乱码久久久久久 | 久久黄色精品视频 | 国产成a人亚洲精v品在线观看 | 99精品在线直播 | 韩国av一区二区三区 | 国产午夜不卡 | 久久伦理影院 | 日韩中文在线电影 | 91免费高清观看 | 超碰97在线人人 | 国产精品美女999 | 日本性视频 | 伊人狠狠色丁香婷婷综合 | 91综合色 | 国产精品久久久久久久av电影 | 99亚洲精品在线 | 精品xxx | 国产三级在线播放 | 日韩伦理片hd | avwww在线观看 | www.久久成人 | 久久久久久久久影院 | 国产精品九九久久久久久久 | 超碰在线公开 | 五月色丁香 | 免费看成人片 | 精品中文字幕在线播放 | 亚洲一级电影在线观看 | 亚洲国产中文字幕在线观看 | 久久综合九色 | 婷婷5月色| 中文字幕韩在线第一页 | 亚洲国产精品激情在线观看 | 国产vs久久 | 精品免费视频 | 久草.com| 国产福利一区在线观看 | www.色五月.com | 亚洲自拍偷拍色图 | 黄色三级免费片 | 狠狠躁夜夜躁人人爽超碰97香蕉 | 91视频在线观看大全 | 日韩午夜视频在线观看 | 91成人精品观看 | 91理论片午午伦夜理片久久 | av看片在线观看 | 久草av在线播放 | 在线视频电影 | 少妇bbw揉bbb欧美 | 天天操夜操视频 | 91精品视频网站 | 91爱看片| 亚洲伊人色 | 日韩在线免费高清视频 | 欧美日韩综合在线观看 | 亚洲精品视频在 | a在线观看视频 | 在线日韩视频 | 少妇做爰k8经典 | 精品少妇一区二区三区在线 | 婷婷在线精品视频 | 狠狠干美女| 日韩久久久 | 免费av网址大全 | 毛片美女网站 | 日日爽日日操 | 三上悠亚一区二区在线观看 | 91人人爽人人爽人人精88v | 国产日韩精品一区二区在线观看播放 | 亚洲国产精品影院 | 国产精品网红福利 | 色五月情 | 91网在线观看| 丁香色综合 | 免费在线观看亚洲视频 | 久 久久影院 | 久久精品中文字幕免费mv | 国产福利91精品一区 | 免费观看黄 | 色九九在线 | 2018亚洲男人天堂 | 久久久久久久久爱 | 在线观看色网站 | 摸bbb搡bbb搡bbbb | 有码一区二区三区 | 国产麻豆精品久久一二三 | 日韩视频二区 | 国产97av| 91久久一区二区 | 色婷婷88av视频一二三区 | 久久久久国产一区二区三区四区 | 日韩在线网 | 国产大尺度视频 | 国产精品久久久久久久久久久久冷 | 伊人宗合网 | 国产亚洲综合精品 | 国产亚洲欧美一区 | 黄色1级大片 | 亚洲色影爱久久精品 | 欧美精品亚洲二区 | 国产品久精国精产拍 | www九九热| 欧美性生活大片 | a黄色影院 | 在线观看视频一区二区三区 | 欧美 激情在线 | 看毛片网站 | 国产91aaa | 婷婷激情综合五月天 | 最近日本字幕mv免费观看在线 | 8x成人免费视频 | 国产小视频在线免费观看视频 | 国产精品亚洲片夜色在线 | 欧美 亚洲 另类 激情 另类 | 天天要夜夜操 | 狠狠久久伊人 | 黄色成人在线 | 精品国产自在精品国产精野外直播 | 亚洲四虎在线 | 久久免费美女视频 | 中文字幕av在线播放 | 91免费的视频在线播放 | 久久亚洲私人国产精品va | 成人免费在线播放视频 | 色婷婷综合五月 | 国产打女人屁股调教97 | 国内精品二区 | 国产成人一区二区三区在线观看 | 日韩专区视频 | 怡红院久久 | 日韩欧美在线观看 | 黄色片亚洲 | 国产网站色 | 99热在线观看免费 | 日韩区欧美久久久无人区 | 亚洲一区二区观看 | 欧美激情综合五月 | 国产一区二区手机在线观看 | 久久超碰97 | 国产精品久久久久永久免费看 | 久久成人毛片 | 久久久网站 | 99久久精品免费 | 精品欧美日韩 | 精品国产视频在线观看 | 99久久精品费精品 | 国产精品福利无圣光在线一区 | 日韩xxxxxxxxx | 久久久精品国产免费观看一区二区 | 成人小视频在线观看免费 | 欧美日韩裸体免费视频 | 日韩精品一区二区电影 | 手机在线免费av | 波多野结衣在线观看视频 | 欧美精品久久久久久久久久久 | 中文字幕av播放 | 97国产精品久久 | 欧美精品一二 | 欧美三级高清 | 五月婷婷播播 | 亚洲成人黄色在线观看 | 激情五月在线 | 久久久久久久久久久久久国产精品 | 五月婷婷网站 | 中文字幕永久 | 国产精品 亚洲精品 | 五月情婷婷 | 黄色特级片 | 天天操天天操一操 | 久久久久久97三级 | 国产97碰免费视频 | 免费高清在线观看成人 | 国产精品av电影 | 毛片在线网 | 婷婷六月激情 | 狠狠干我| 久久国产精品99精国产 | 亚洲精品久久久蜜桃 | 日韩中字在线观看 | 国模精品一区二区三区 | 免费99视频| 麻豆一精品传二传媒短视频 | 国产综合在线观看视频 | 国产精品久久久影视 | 久久精品一区二区三区视频 | 麻豆视频免费网站 | 天天色天天色天天色 | 婷婷深爱 | 91视频麻豆视频 | 色视频在线免费观看 | 亚洲精品成人 | 黄色小说视频在线 | 国产精品二区在线观看 | www好男人 | 中文字幕资源网 国产 | 国产午夜精品一区二区三区四区 | 福利电影一区二区 | 久久午夜免费视频 | 欧美日韩精品国产 | 亚洲香蕉视频 | 成人综合日日夜夜 | 人人干狠狠操 | 国产精品h在线观看 | 91日韩在线视频 | 国产中文字幕一区二区 | 菠萝菠萝蜜在线播放 | 狠狠操狠狠插 | 丁香婷婷基地 | 午夜.dj高清免费观看视频 | 激情导航 | 国产精品久久久久久69 | 麻豆视频大全 | 中文字幕999| 精品一二 | 国内综合精品午夜久久资源 | 久久69精品久久久久久久电影好 | 日韩毛片在线一区二区毛片 | 国产无套精品久久久久久 | 97色免费视频 | 免费看黄色91 | 探花视频在线观看免费 | 国产一区二区三精品久久久无广告 | 久久久五月婷婷 | 国产高清一区二区 | 久久综合狠狠综合久久综合88 | 在线观看亚洲视频 | 手机成人在线电影 | 综合久久精品 | 国产精品一区二区麻豆 | 91在线小视频 | 成年人天堂com | 92av视频| 国产精品视频专区 | 成人av高清在线观看 | 91在线视频免费观看 | 97香蕉视频| 一区二区三区在线观看 | 久久艹免费 | 激情五月在线观看 | 国产精品成人一区二区三区吃奶 | 色婷婷五 | www.五月天婷婷 | 一级黄色av | 在线成人一区 | 国产精品一区二区免费视频 | 日韩av在线小说 | 精品久久久99| 丁香资源影视免费观看 | 一区 在线 影院 | 亚洲欧洲一区二区在线观看 | 美女视频黄免费的 | 欧美男男激情videos | 免费在线观看av片 | 国产美女黄网站免费 | 麻豆传媒一区二区 | 高清视频一区二区三区 | 日韩精品久久久久 | 中文字幕亚洲精品在线观看 | 91视频在线观看免费 | 日韩二区在线 | 久久色亚洲 | 久久av免费电影 | 色窝资源 | 久久黄色片 | 亚在线播放中文视频 | 日韩高清无线码2023 | 探花视频免费在线观看 | a爱爱视频 | 亚洲色视频 | 欧美日韩国产免费视频 | 国产91免费观看 | 欧美日在线观看 | 蜜臀av性久久久久蜜臀aⅴ涩爱 | 国产精品一区二区果冻传媒 | 欧美精品久久久久久久久免 | 在线精品在线 | 99草在线视频 | 久久99亚洲精品久久久久 | 国产黄色精品在线 | 国产精品资源在线观看 | 91视频91色| 久久成人麻豆午夜电影 | 美女视频黄是免费的 | av网站免费在线 | 99国产高清 | 国产黄色精品在线 | 国产精品一区免费观看 | 一区二区三区日韩视频在线观看 | 91精品1区 | 免费三级黄色 | 在线观看国产区 | 五月婷婷亚洲 | 四虎成人精品永久免费av九九 | 国产精品18久久久久久首页狼 | 丁香九月婷婷综合 | 97超碰成人 | 日韩性xxxx| 国产精品久久久久久久久久免费看 | 18国产精品白浆在线观看免费 | 91免费网站在线观看 | 日批视频国产 | 最新国产视频 | 成人免费视频播放 | 亚洲aaa级| 欧美一级淫片videoshd | 国产一级一级国产 | 成人一级在线 | 最近中文字幕在线 | 国产高清免费视频 | 麻豆高清免费国产一区 | 亚洲日本va在线观看 | 国产玖玖在线 | 日韩毛片在线一区二区毛片 | 人人干人人做 | 中国精品少妇 | 久久久久久久久久久高潮一区二区 | 日日干精品 | 丰满少妇在线观看网站 | 一区在线播放 | 免费a v在线| 免费下载高清毛片 | 久久的色 | 91亚洲精品久久久久图片蜜桃 | 精品亚洲一区二区 | 亚洲精品福利在线观看 | 91最新地址永久入口 | 久久人人射 | 免费亚洲婷婷 | 色婷婷88av视频一二三区 | 国产精品久久亚洲 | 中文av字幕在线观看 | 字幕网在线观看 | 亚洲精品国产麻豆 | 国产又粗又猛又黄又爽的视频 | 亚洲在线成人精品 | av电影不卡在线 | 999久久a精品合区久久久 | 久久99精品国产91久久来源 | 日韩欧美视频一区二区三区 | 九九欧美视频 | 久久久精品国产免费观看同学 | 亚洲成人中文在线 | 九九综合九九综合 | 在线免费观看成人 | 91电影福利 | 狠狠的干| 91免费看黄 | 免费亚洲精品视频 | 亚洲专区在线播放 | 日本超碰在线 | 欧美国产日韩一区二区三区 | 91超级碰碰 | 国产爽妇网 | 97香蕉久久国产在线观看 | 久久一区二区三区日韩 | 欧美综合久久久 | 亚洲国产资源 | 国产日韩精品久久 | 久久超级碰 | 99精品视频免费观看 | 国产成人在线播放 | 久久久香蕉视频 | 狠狠五月天| 免费观看成人av | 久久99精品国产91久久来源 | 亚洲欧美激情插 | 96精品高清视频在线观看软件特色 | 亚洲最大色 | 在线观看中文字幕视频 | 日韩免费在线播放 | 亚洲精品午夜久久久 | 久久在线 | 国产精品四虎 | 97福利在线观看 | 久久久久亚洲天堂 | 国产一区二区在线免费播放 | 91av免费观看 | 日韩av偷拍 | 天天色天天上天天操 | 综合色影院| 免费中文字幕 | 午夜视频在线网站 | 99视频这里有精品 | 国产第一页福利影院 | 国产资源网站 | 亚洲天堂网在线视频 | 久久人人爽人人片 | 最近日韩免费视频 | 成人国产精品免费观看 | 麻豆国产在线播放 | 国产欧美高清 | 最新av免费| 国产淫片免费看 | 天天天天天天天操 | 久久经典国产 | 国产精品一区二区三区在线 | 又黄又刺激的视频 | 香蕉在线观看视频 | 国产亚洲精品av | 久久艹综合 | 成年在线观看 | 久久久五月天 | 成年人网站免费观看 | 天天爱天天操 | www.在线看片.com| 日韩欧美一二三 | 免费碰碰| 国产999精品久久久久久绿帽 | 国产一二区视频 | 偷拍久久久 | 区一区二区三区中文字幕 | 九九久久久久久久久激情 | 婷婷色狠狠 | 黄色毛片一级片 | 国产精品一区久久久久 | 亚洲精品视频在线 | 免费v片 | 日本激情视频中文字幕 | 中文字幕有码在线播放 | 色综合久久五月 | 色网站免费在线观看 | 开心激情五月婷婷 | 在线观看视频一区二区三区 | 国产电影一区二区三区四区 | 久久免费视频99 | 久久 亚洲视频 | 91天天视频 | 日本不卡123| 国产精品久久久久久模特 | 91av在线国产 | 日韩免费网址 | 久久久www成人免费精品张筱雨 | 精品亚洲男同gayvideo网站 | 亚洲综合成人婷婷小说 | 黄色成品视频 | 热99在线视频 | www.天天操| 国产免费国产 | 大胆欧美gogo免费视频一二区 | 伊人成人激情 | 久久视频免费看 | 91九色视频国产 | 亚洲国产精品推荐 | a级片网站 | wwwwww色| 欧美性黄网官网 | 亚洲专区中文字幕 | 天天天天天天天操 | 香蕉视频国产在线 | 精品久久久久久亚洲综合网 | 久久久久女教师免费一区 | 97网站| 精品美女久久久久久免费 | av视屏在线播放 | 国产精品综合av一区二区国产馆 | 人人玩人人弄 | 99视频99 | 国产日产av | 91香蕉视频| 国产一区二区中文字幕 | 天天做夜夜做 | 91在线精品一区二区 | 久草在线在线视频 | 国产第一页在线观看 | 久久草| 在线观看韩国av | 久久久久久久久久国产精品 | 亚洲天堂网站视频 | 国产亚洲视频在线观看 | 亚洲一区精品二人人爽久久 | 波多野结衣在线播放视频 | 亚洲91中文字幕无线码三区 | 久久综合久久综合这里只有精品 | 国内精品二区 | 国产最新网站 | 激情网站网址 | 一区二区激情 | 午夜国产一区二区三区四区 | 丁香六月网 | 国产专区欧美专区 | 国产一级久久 | 日本中文字幕在线看 | 日日夜夜天天久久 | 特级西西444www高清大视频 | 精品一区二区在线免费观看 | 精品视频免费在线 | 麻豆久久精品 | 久久精品视频播放 | 美女久久99 | 一级黄色免费网站 | 五月婷婷六月丁香激情 | 日日碰狠狠添天天爽超碰97久久 | 欧美日一级片 | 91免费版在线观看 | 天天色综合久久 | 国产中文字幕三区 | 日韩高清国产精品 | 中文字幕av电影下载 | 国产91精品高清一区二区三区 | 免费在线一区二区 | 国产91在线播放 | 国产精品美女久久久久久2018 | 国产精品久久久久久久久毛片 | 综合网欧美| 91在线超碰 | 日日干视频| 精品国产资源 | 成人小视频在线播放 | 日本公妇在线观看 | 2021国产视频 | 97超级碰 | 久久精品国产免费 | 国产高清专区 | 日韩在线观看网站 | 国产精品 中文字幕 亚洲 欧美 | 久久三级视频 | 中文字幕视频观看 | 色婷婷婷 | 国产亚洲婷婷免费 | 欧美日韩三级 | 久久久久久久久久久久久久av | 在线观看免费国产小视频 | 伊人久操| 美女视频黄免费的 | 97超碰在线久草超碰在线观看 | 久久成视频 | 99高清视频有精品视频 | 久久久www成人免费毛片 | 91chinesexxx| 国产美女精彩久久 | 久久99热这里只有精品国产 | 国产精品麻豆三级一区视频 | 国产高清视频免费最新在线 | 欧美最猛性xxxxx免费 | 国产精品永久免费在线 | www国产精品com | 国产最新在线视频 | 操老逼免费视频 | 最近最新中文字幕 | 欧美日韩国产一区二区三区在线观看 | 激情视频区 | 国产精品久久久久高潮 | 亚a在线| 久久久久国 | 国产一区二区视频在线播放 | 91九色视频观看 | 四虎在线免费观看 | 狠狠插天天干 | 国产精品 欧美 日韩 | 激情婷婷六月 | 欧美va天堂在线电影 | www.xxxx欧美| 日日草天天干 | 久久中文字幕导航 | 日韩精品久久久久久 | 国产高清不卡一区二区三区 | 国产中文在线视频 | 亚洲区精品视频 | 亚洲国产一二三 | 亚洲欧美激情精品一区二区 | 99久久精品国产毛片 | 国产黄色高清 | 永久av免费在线观看 | 麻豆视频在线看 | 欧美激情视频一二区 | 国产日产精品久久久久快鸭 | 91一区啪爱嗯打偷拍欧美 | 免费在线国产视频 | 国产精品一区二区免费视频 | 岛国大片免费视频 | 久久国语 | 亚州性色| 伊人五月婷 | 日日夜精品 | 狠狠色狠狠色综合日日92 | 精品女同一区二区三区在线观看 | 91网在线看| 97超碰在线免费观看 | 久久久久久久久艹 | 亚洲欧美精品一区 | 久久九九影视网 | 日批视频在线观看免费 | 免费高清在线观看成人 | 欧美一级激情 | 欧美一级特黄aaaaaa大片在线观看 | 狠狠狠色丁香综合久久天下网 | 国产精彩视频一区二区 | 久久久久久高清 | www.夜夜夜 | 白丝av免费观看 | 热热热热热色 | 成人a免费| 精品一区二区6 | 亚洲欧洲精品在线 | 国产专区一 | 国产一级视屏 | 国产精品久免费的黄网站 | 青青河边草免费直播 | 国产女v资源在线观看 | 亚洲国产精品电影在线观看 | 成年人免费在线观看网站 | 欧美日韩一区二区三区在线免费观看 | 日韩成人欧美 | 国产一区二区精品 | 在线观看午夜 | 国产精品精品视频 | 国产精品久久av | www.色午夜.com| 久久综合九色综合97_ 久久久 | 国产小视频你懂的 | 久草av在线播放 | 色香蕉视频 | 久久久久福利视频 | 久久99国产精品久久99 | 五月婷社区 | 超碰在线99 | 亚洲婷婷综合色高清在线 | 美女精品 | 97在线免费观看视频 | 免费久久片 | 349k.cc看片app | 黄色大片av | 中国一级片免费看 | 中文字幕在线不卡国产视频 | 国产日韩欧美自拍 | 国产精品美女久久久免费 | 欧洲精品久久久久毛片完整版 | 伊人激情网 | 久久精品视频播放 | 天天色天天爱天天射综合 | 在线观看国产 | 日韩精品视频在线观看网址 | a极黄色片| 日韩在线网址 | 最新中文字幕在线观看视频 | 中文字幕av全部资源www中文字幕在线观看 | 九九久久久久久久久激情 | 国产精品视频app | 婷婷成人在线 | 在线观看国产成人av片 | 青青草国产免费 | 伊人久久影视 | 91大神电影 | 91激情在线视频 | 亚洲高清在线精品 | 香蕉免费在线 | 最近2019好看的中文字幕免费 | 国产精品视频大全 | 黄色一级动作片 | 久久久精选 | 好看的国产精品视频 | 黄色app网站在线观看 | 91av在线播放 | 手机色在线 | 婷婷在线色 | 国产 一区二区三区 在线 | 久久国产精品视频免费看 | 天天拍天天色 | 免费观看91视频 | 久久ww| 精品一区二区av | 黄色网址在线播放 | 色www免费视频 | 久久久久国产成人免费精品免费 | 91欧美国产| 婷婷中文字幕在线观看 | 五月天亚洲激情 | 日韩中文免费视频 | 五月婷婷在线播放 | 亚洲综合欧美激情 | 亚洲高清网站 | av免费看看 | 日韩高清黄色 | 99久久99久久精品国产片 | 91毛片在线 | 亚洲撸撸| 正在播放日韩 | 久草视频在 | 久久久久久久久久久免费av | 国色天香第二季 | 亚洲经典在线 | 综合激情 | 91亚洲网 | 夜夜夜影院 | 99精品免费久久久久久久久日本 | 手机在线视频福利 | 免费一级片观看 | 久久视频这里有精品 | wwwwww色 | 最近中文字幕视频完整版 | 999抗病毒口服液 | 日b视频在线观看网址 | 免费在线黄色av | 狂野欧美激情性xxxx欧美 | 日韩一级电影在线观看 | 天天干天天射天天爽 | 亚洲精品免费播放 | 日韩免费在线观看 | 日韩久久影院 | 夜夜躁狠狠燥 | 亚洲狠狠干 | 亚洲精欧美一区二区精品 | www.久久99| 日韩a在线观看 | adc在线观看 | 精品91| 丁香六月婷婷激情 | 精品国内自产拍在线观看视频 | 亚洲精品视频网站在线观看 | 亚洲在线视频网站 | 国产精品资源在线 | 在线99热| 亚洲 中文 欧美 日韩vr 在线 | 蜜臀av性久久久久蜜臀aⅴ流畅 | 天天色天天综合网 | 亚洲精品高清在线观看 | av电影免费观看 | 99精品视频一区二区 | 国产123av| 97国产精品免费 | 免费黄在线观看 | 国产99中文字幕 | 日本特黄一级片 | 久久久午夜视频 | 热久久国产 | 亚洲aⅴ一区二区三区 | 国产精品自拍在线 | 免费看片黄色 | 久艹视频免费观看 | 18做爰免费视频网站 | 欧美成人xxx | 久久一区二区免费视频 | 中文字幕视频网 | 亚洲视频电影在线 | 99免费看片 | 麻豆免费精品视频 | 免费看三级 | 免费观看一级特黄欧美大片 | 成人精品国产免费网站 | 国产资源在线免费观看 | 91在线影视 | 99re国产视频 | 日韩精品综合在线 | 久久免费视频播放 | 久久天天躁夜夜躁狠狠85麻豆 | 网站在线观看你们懂的 | 日本少妇视频 | 国产美女视频免费观看的网站 | 欧美最新大片在线看 | 麻豆你懂的 | 99在线高清视频在线播放 | 国产福利在线不卡 | 久久影视精品 | 国产麻豆精品久久 | 国产麻豆电影在线观看 | 久久精品视频在线观看免费 | 极品国产91在线网站 | 国产精品午夜久久久久久99热 | 国产日本三级 | 欧美精品网站 | 五月激情丁香婷婷 | 日韩视频一 | 日韩欧美国产成人 | 久久爽久久爽久久av东京爽 | 欧美精品亚州精品 | 国产中文视频 | 少妇搡bbbb搡bbb搡69 | 免费在线a | 国产精品成人av久久 | 人人射人人澡 | 啪啪免费试看 | 99久久婷婷 | 精品久久一区二区三区 | 国产精品18久久久久白浆 | 久久免费视频这里只有精品 | 久久精品5| 国产精品精品久久久久久 | 五月婷婷爱 | 九九热视频在线免费观看 | 欧美日韩精品免费观看视频 | 少妇高潮流白浆在线观看 | 久久精品美女视频 | 在线视频欧美日韩 | 久久精品91久久久久久再现 | 97超碰人人干 | 欧美在线观看视频一区二区 | www91在线观看| 夜夜夜夜操 | 亚洲视频精品在线 | 精品视频亚洲 | 六月激情婷婷 | 久久久免费看片 | 4438全国亚洲精品观看视频 | 色综合久久网 | 国产.精品.日韩.另类.中文.在线.播放 | 国产日韩av在线 | 日韩av一区二区三区在线观看 | 日日干 天天干 | 国产黄色美女 | 欧美日韩精品免费观看视频 | www亚洲精品| 91精品对白一区国产伦 | 999久久国精品免费观看网站 | 超碰在线观看99 | 欧美a级在线 | 亚洲一区二区三区在线看 | 国产精品成人在线 | 久久婷婷五月综合色丁香 | 国产破处在线播放 | 精品在线观 | 国产精品video | 亚洲欧美日韩一区二区三区在线观看 | 91在线免费视频 | 99亚洲精品在线 | 免费看黄色91| 欧美日韩啪啪 | 激情欧美一区二区免费视频 | 色综合天天色 | 最近高清中文字幕在线国语5 | 91资源在线免费观看 | 欧洲精品码一区二区三区免费看 | 亚洲情婷婷 | 在线导航av | 四虎影视成人精品 | 97国产小视频 | 色综合久久天天 | 粉嫩一二三区 | 亚洲精品视频播放 | 2024国产精品视频 | 国产精品国产三级国产不产一地 | 一区二区三区精品久久久 | 久久久国产精品电影 | 国产精品久久久久久久久久免费 | 91精品区| 国产系列在线观看 | 成人理论在线观看 | 久久久精华网 | 久久久久久久99 | 日韩在线观看一区 | 免费视频色 | 国产精品你懂的在线观看 | 日日骑| 激情网五月 | 中文字幕日本在线 | 一区二区三区精品在线视频 | 国产偷在线 | 亚州欧美视频 | 日韩精选在线 | 99免费在线观看视频 | 五月天色婷婷丁香 | 中文字幕在线看视频国产中文版 | 亚洲视频免费视频 | 中文国产字幕在线观看 | 正在播放亚洲精品 | 亚洲视频综合 | 九九热久久免费视频 | 黄色福利视频网站 | 欧美一级艳片视频免费观看 | 久草干 | 又黄又爽免费视频 | 91精品国产自产在线观看永久 | 香蕉91视频 | 免费能看的黄色片 | 国产精品免费视频一区二区 | 亚洲天堂网在线播放 | 成人国产精品一区二区 | 久久久久国产a免费观看rela | 五月天中文字幕mv在线 | 亚洲综合视频在线 | 干 操 插| 国产成人一区二区三区免费看 | 激情五月综合 | 国产色拍拍拍拍在线精品 | 日日日日干 | 国产精品99久久久久久人免费 | 日韩高清不卡一区二区三区 | 美州a亚洲一视本频v色道 | 久久免费a| 456免费视频 | 国偷自产中文字幕亚洲手机在线 | 久久久久久久免费 | 99福利片| 欧美资源在线观看 | 日日碰狠狠躁久久躁综合网 | 午夜在线看片 | 色综合久久88色综合天天免费 | 亚洲综合欧美精品电影 | av丝袜制服 | 色婷婷 亚洲 | 日韩高清免费电影 | 国产 在线 日韩 | 国产精品九九九九九 | 18国产精品福利片久久婷 | 一区二区视频免费在线观看 | 国产成人精品在线观看 | 精品久久精品久久 | 久久久久国产精品厨房 | 午夜视频在线观看一区 | 国产破处精品 | 成人av在线影视 | 99热国内精品 | 日韩免费在线视频观看 | 免费观看特级毛片 | 中国一级特黄毛片大片久久 | 97视频免费 | 韩日精品在线观看 | 射射射av | 91私密保健 | 国产高清在线看 | 久久综合加勒比 | 久久字幕精品一区 | 麻豆影视在线观看 | 六月丁香激情综合 | 亚洲伊人婷婷 | 欧美专区国产专区 | 成人黄色毛片视频 | 久久乱码卡一卡2卡三卡四 五月婷婷久 | 亚洲婷婷综合色高清在线 | 国产 一区二区三区 在线 | 免费观看黄 | 久久综合视频网 | 在线播放av网址 | 色婷婷88av视频一二三区 | 色网站在线免费 | 成年人视频在线免费 | 久久视频一区 | 中文字幕丝袜制服 | 国产精品久久久久久久久久东京 | 九九热中文字幕 | 美女久久久久久 | 黄色大片日本 | 成人h视频在线播放 | 狠狠综合久久 | 国产高清视频免费 | 日韩色区 | 99视频在线精品国自产拍免费观看 | 久久久久久久久久亚洲精品 | 亚洲va在线va天堂va偷拍 | 免费看成人片 | 成年人在线电影 | 色综合久久精品 | 天天射综合网站 | 久久高清免费观看 | 西西4444www大胆无视频 | 久草在线免费看视频 | a黄色一级 | 69视频国产 | 精品久久久久亚洲 | 国产一区国产精品 | 91视频在线网址 | 91麻豆精品国产自产 | 黄色大片入口 | 久久久国产精品视频 | 国产高清无线码2021 | 在线免费观看黄色大片 | 久久精久久精 | 欧美另类交人妖 | 欧美色噜噜噜 | 99re久久精品国产 | 日日操天天射 | 久久人人爽人人爽人人片av免费 | 99久久精品国产欧美主题曲 | 天堂麻豆| 久久免费视频观看 | 精品亚洲一区二区 | 808电影免费观看三年 | 成年人av在线播放 | 国产一区欧美日韩 | 日韩av伦理片 | 蜜臀精品久久久久久蜜臀 | 国产一级电影免费观看 | 久草在线视频国产 | 98涩涩国产露脸精品国产网 | 亚洲天堂精品视频 | 国产精品久久久一区二区 |