dubbo本机演示

85 阅读2分钟
  1. dubbo admin 管理控制台搭建
    1. 下载源码地址:https://github.com/apache/dubbo-admin.git
    
    2. 我本机项目地址:/Users/dingyawu/Desktop/知识体系/dubbo/software/incubator-dubbo-ops-master/dubbo-admin
    
    3. 修改application.properties配置项: dubbo.registry.address=zookeeper://127.0.0.1:2181
    application.properties地址:/Users/dingyawu/Desktop/知识体系/dubbo/software/incubator-dubbo-ops-master/dubbo-admin/src/main/resources
    
    3. 打包这个项目并且打包启动 java -jar dubbo-admin-0.0.1-SNAPSHOT.jar
    4. 账号密码root、root,访问localhost:7001  
    5. /opt/software 是我腾讯云的包的地址
    

image.png

  1. Spring集成dubbo provider
引入jar包
    <dependency>
       <groupId>com.alibaba</groupId>
       <artifactId>dubbo</artifactId>
       <version>2.6.2</version>
    </dependency>
    
    <!-- 注册中心使用的是zookeeper,引入操作zookeeper的客户端端 -->
    <dependency>
       <groupId>org.apache.curator</groupId>
       <artifactId>curator-framework</artifactId>
       <version>2.12.0</version>
    </dependency>
    
 如何测试
     public static void main(String[] args) throws IOException {
        ClassPathXmlApplicationContext ioc = new ClassPathXmlApplicationContext("provider.xml");
        ioc.start();
        System.in.read();
     }
     
 provider.xml配置
     标签:dubbo:application、dubbo:registry、dubbo:protocol、dubbo.provider
          dubbo.service一定要和bean一起使用、 dubbo.monitor

3. Spring集成dubbo consumer

  consumer.xml配置
     标签:dubbo:application、dubbo:registry、dubbo:reference
     
  <dubbo:protocol name="dubbo" port="20882" />
  这个是给provider使用的
   
  1. 监控中心的搭建
    1. 打包dubbo-monitor-simple,获取dubbo-monitor-simple-2.0.0-assembly.tar.gz
    2. 复制解压,观测dubbo.properties,
       其他服务和监控中心的通行接口dubbo.protocol.port=7070
       监控中心的访问接口dubbo.jetty.port=8080

  1. dubbo 整合springboot
添加依赖
    <dependency>
       <groupId>com.alibaba.boot</groupId>
       <artifactId>dubbo-spring-boot-starter</artifactId>
       <version>0.2.0</version>
    </dependency>
dubbo配置项
    三个配置路径的优先级 
    jvm(-Ddubbo.protocol.port=20881) > 
    xml (<dubbo:protocol name="dubbo" port="20882"></dubbo:protocol>) > 
    dubbo.properties(dubbo.protocol.port=20883)
    同时配置三个,dubbo的通信接口是20881
    
SpringBoot与dubbo整合的三种方式:
    1)、导入dubbo-starter,在application.properties配置属性,使用@Service暴露服
    务使用@Reference引用服务
    2)、保留dubbo xml配置文件;导入dubbo-starter,使用@ImportResource导入dubbo的配置
    文件即可
    @ImportResource(locations="classpath:provider.xml")
    导入一个资源配置文件
    3)、使用注解API的方式:将每一个组件手动创建到容器中,让dubbo来扫描其他的组件
    @EnableDubbo(scanBasePackages="com.roy")
    开启基于注解的dubbo功能等同于dubbo.scan.base-packages=com.roy


    
    
    
  1. dubbo直连
@Reference(url = "127.0.0.1:20880") 这样配置的时候,即使zk挂了,也可以直接调用
或者通过控制台直接禁用提供者

7. 消费者的屏蔽和容错

mock=force:return+null 表示消费方对该服务的方法调用都直接返回 null 值,不发起远程调用。用来屏蔽不重要服务不可用时对调用方的影响。
还可以改为 mock=fail:return+null 表示消费方对该服务的方法调用在失败后,再返回 null 值,不抛异常。用来容忍不重要服务不稳定时对调用方的影响。

image.png

  1. 启动时检查
    1. @Reference(loadbalance = "leastactive", check = false)
       启动的时候检查会抛出异常,但不影响springboot启动
    2. 统一配置消费者的规则,消费者的缺省配置
       dubbo.consumer.check=false
    3. 服务启动的时候没有注册中心也是ok的
       dubbo.registry.check=false
#
#

9. springboot集成Hystrix

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

然后在Application类上增加@EnableHystrix来启用hystrix starter

  1. provider的标签
    dubbo:application、dubbo:registry、dubbo:protocol、dubbo:service

11. consumer的标签

    dubbo:application、dubbo:registry、dubbo:reference、dubbo:consumer

12.