Dubbo总结(三)

一、dubbo监控中心(dubbo-monitor-simple的使用)

 

1、运行项目

链接:https://pan.baidu.com/s/1AXDTzRB_5jsds5nN8a_Lig   提取码:2w00

记得先把本机的zookeeper启起来

控制台即dubbo-admin,链接解压后可以看到一个dubbo-admin-master

的目录,将它作为Maven项目在IDEA中打开即可,然后运行dubbo-monitor-simple子项目

2、访问端口

在地址栏输入:localhost:8080

出现如下界面,dubbo-monitor-simple(监控中心启用成功)

Dubbo总结(三)_第1张图片

二、使monitor标签在xml中

 

1、进入官网

百度Dubbo,进入官网后 按红框指示点击即可

Dubbo总结(三)_第2张图片

2、找到文档

Dubbo总结(三)_第3张图片

3、阅读文档

Dubbo总结(三)_第4张图片

 

总结:在xml中有如下两种整合方式

第一种方式,会自行从注册中心找到监控中心的位置




三、 SpringBoot整合Dubbo

 

 

【生产者】

1、导入依赖

  
        
            com.alibaba.boot
            dubbo-spring-boot-starter
            0.2.0
        

2、配置文件application.properties

使用统一配置的方式取代provider.xml文件

server.port=1111

#指定当前服务的名字
dubbo.application.name=student-service-provider

#指定注册中心位置
dubbo.registry.address=zookeeper://127.0.0.1:2181

#指定通信规则和端口
dubbo.protocol.name=dubbo
dubbo.protocol.port=20880

#指定监控中心的位置
dubbo.monitor.address=registry

 3、暴露服务

使用@Service(com.alibaba.dubbo.config.annotation.Service)来暴露服务

4、开启服务

在项目启动类上使用@EnableDubbo注解,开启基于注解的dubbo功能

 

【消费者】

1、同上

2、同上

3、远程引用

引用StudentService从注册中心发现,使用@Reference注解

4、同上

5、修改StudentController

@Controller
public class StudentController {

    //@Resource
    //com.alibaba.dubbo.config.annotation.Reference
    //远程引用StudentService从注册中心发现
    @Reference
    StudentService studentService;

    @RequestMapping(value = "/dubbo",method = RequestMethod.GET)
    @ResponseBody
    public String getStudent(){
        Student student = studentService.getStudentById("1");
        return student.toString();
    }
}

 

【测试是否整合成功】

启动生产者和消费者,访问端口

四、dubbo配置属性加载顺序

 

1、进入官网,找到文档

Dubbo总结(三)_第5张图片

2、阅读文档

Dubbo总结(三)_第6张图片

3、验证官网结论

3.1、配置虚拟机参数

Dubbo总结(三)_第7张图片

3.2、配置两个属性文件

Dubbo总结(三)_第8张图片

验证dubbo配置属性加载顺序与官网描述一致

总结虚拟机参数 > application.properties (dubbo.xml)> dubbo.properties

Dubbo的重要功能

 

1、启动时检查

Dubbo总结(三)_第9张图片

三个要点:

1、关闭某个服务的启动时检查 (没有提供者时报错)


2、关闭所有服务的启动时检查 (没有提供者时报错)


3、关闭注册中心启动时检查 (注册订阅失败时报错)

 

2、超时

设置超时时间 (默认值是1000ms)

在application.properties中的配置方式:dubbo.consumer.timeout=

在接口级别的配置方式 @service(timeout = )

Dubbo总结(三)_第10张图片

 

3、不同粒度配置的覆盖关系

以 timeout 为例,下图显示了配置的查找顺序,其它 retries, loadbalance, actives 等类似:

  • 方法级优先,接口级次之,全局配置再次之。(精确优先)
  • 如果级别一样,则消费方优先,提供方次之。(消费者优先)

其中,服务提供方配置,通过 URL 经由注册中心传递给消费方。

方法——>接口——>服务

dubbo-config-override

 

4、重试次数(retries)

不包含第一次调用,0代表不重试

非幂等(不可设置重试次数)【新增】

幂等(可以设置重试次数)【查询,删除,修改】

在application.properties中的配置方式:dubbo.consumer.retries=3

 

5、多版本

灰度发布就是多版本的功能

Dubbo总结(三)_第11张图片

当一个接口实现,出现不兼容升级时,可以用版本号过渡,版本号不同的服务相互间不引用。

可以按照以下的步骤进行版本迁移:

  1. 在低压力时间段,先升级一半提供者为新版本
  2. 再将所有消费者升级为新版本
  3. 然后将剩下的一半提供者升级为新版本

 

6、本地存根

解释的已经很详细了

Dubbo总结(三)_第12张图片

 

你可能感兴趣的:(JAVA,框架,Dubbo)