dubbo是RPC框架
    1.dubbo解决的问题:服务的治理
    Url的管理(注册中心)、监控每个节点的访问量/响应时间/性能(monitor监控)

    核心作用:
    1. 远程调用
    2. 智能容错和负载均衡
    3. 服务注册和发现

    Dubbo(1) - 图1
    Dubbo(1) - 图2
    流程解释:
    1. 服务提供方将服务注册到注册中心(dubbo喜欢用zk作为注册中心):这里是全部注册过去,按照服务名字进行归类。
    2. 服务调用方从注册中心获取服务地址列表,使用软负载均衡机制随机选取一台,如果不成功会有重试机制再选一台
    3. 如果服务提供方有更新,也会直接发送到注册中心,注册中心会提醒消费的一方来重新拉取地址列表

    注意:这里服务消费方获取到服务列表之后会缓存在本地,只要注册中心没有通知说更新了,那么就使用缓存中的地址寻找服务,而不会再去注册中心拉取服务

    注意:这里服务的注册和发现是完成了,那么监控又是怎么做的呢:服务的注册者和调用者在内存中的调用次数和调用时间都会定时每分钟发送给dubbo的监控中心(monitor)


    dubbo-monitor监控中心安装:
    1.下载dubbo-monitor安装包:

    2.解压:tar -zxf dubbo-monitor-simple-2.5.3-assembly.tar.gz
    Dubbo(1) - 图3
    3.修改配置文件:放开注册中心地址
    Dubbo(1) - 图4
    4. 启动(bin目录):./server.sh start
    5. 启动成功之后默认会在bin同级别创建一个logs目录:查看日志:tail -f stdout.log
    6. 检测服务:ip:8080 注意:打开8080端口,如果想更改可以去配置文件中修改
    Dubbo(1) - 图5

    Dubbo-admin管理平台的搭建:自身是一个war包:所以需要安装tomcat
    1. 安装好tomcat,并清空ROOT目录的内容
    2. 将dubbo.war解压到tomcat的root目录下
    3. 配置dubbo的配置文件:在解压路径下的WEB-INF目录:dubbo.properties:配置注册中心地址

    注意:这里的dubbo的服务治理很多都是通过这个平台去实现的
    1. 服务治理
    2. 路由规则
    3. 动态配置
    4. 服务降级
    5. 访问控制
    6. 权重调整
    7. 负载均衡

    Dubbo的负载均衡策略:默认是随机:在客户端和服务端都可进行设置
    1. 随机 random
    2. 轮询 roundrobin
    3. 最少活跃调用数 leastactive
    4. 同一个请求对接到同一个服务提供者 consistenthash
    具体如何设置:
    1.在xml配置文件中:
    Dubbo(1) - 图6
    2. 在boot中:


    1. dubbo的使用:xml使用方式:
    1.Dubbo(1) - 图7
    2、在配置文件中添加约束头:
    Dubbo(1) - 图8
    Dubbo(1) - 图9
    Dubbo(1) - 图10


    Dubbo的官网:http://dubbo.apache.org/

    Dubbo+springboot整合:
    1. 添加依赖:
    Dubbo(1) - 图11

    注意:在分布式环境中,service和web层都需要进行添加。

    2. 添加dubbo的配置文件:这里是在service层的配置
    Dubbo(1) - 图12

    3. 创建一个api层,作为服务提供方去暴露接口:
    Dubbo(1) - 图13
    4. 在service层实现该接口,因为依赖了api层,所以可以直接实现。
    Dubbo(1) - 图14

    5. 如果想调用这个dubbo的实现:

    1. 添加地址:
    Dubbo(1) - 图15
    2. 调用服务:
    Dubbo(1) - 图16

    Dubbo(1) - 图17
    1. 在服务提供方启动的时候,会将服务全部注册到注册中心里面去。
    2. Dubbo(1) - 图18
    Dubbo(1) - 图19


    Dubbo的多种开发方式:
    1. 基于xml方式:
    2. 基于注解方式:


    Dubbo整合zookeeper:
    1. 添加zookeeper的依赖:
    Dubbo(1) - 图20
    2. 在dubbo中填写注册中心的地址:

    3. 对服务进行检查:
    Dubbo(1) - 图21
    Dubbo(1) - 图22


    Dubbo的高级特性:
    1. 启动依赖的检查:
    Dubbo(1) - 图23
    Dubbo(1) - 图24
    两种实现方式:这里check=false;修改了默认的true,在项目启动的时候,就不会去检查依赖服务是否可以正常使用

    2. 配置加载流程:
    Dubbo(1) - 图25

    3. dubbo超时机制:
    1. 在服务提供方设置超时时间:
    Dubbo(1) - 图26
    Dubbo(1) - 图27
    Dubbo(1) - 图28
    如果两个同时设置,方法级别高于服务级别。
    如果提供方和消费方同时设置,以消费方为准
    2. 在服务消费方设置超时时间

    Dubbo集群容错机制:
    1. 如果服务调用失败,默认会重试两次
    2. 下面是设置容错模式:在服务提供方进行设置

    Dubbo(1) - 图29