![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
dubbo
dubbo知识梳理总结
四月丶丶
越努力越幸运
展开
-
Dubbo 配置文件优先级
场景说明我们在配置项目的各种参数时可能存在多种形式的配置文件,项目启动时依次从配置文件中加载配置参数,主要有xml和properties两种,springboot项目中还可以使用yml格式的配置文件,yml跟properties效果一样,只不过参数书写格式不一样。除了这三种,还可以在程序启动脚本中携带参数,比如 java -Dxxx=xxx -jar demo.jar 如果同一个参数同时存在这几种配置中,哪个才有效呢?优先级如下:优先级从高到低:JVM -D参数,当你部署或者启动应用时,它可原创 2020-08-14 18:50:46 · 242 阅读 · 0 评论 -
Dubbo配置参数优先级
配置之间的关系标签用途解释< dubbo:service/>服务配置用于暴露一个服务,定义服务的元信息,一个服务可以用多个协议暴露,一个服务也可以注册到多个注册中心< dubbo:reference/>引用配置用于创建一个远程服务代理,一个引用可以指向多个注册中心< dubbo:protocol/>协议配置用于配置提供服务的协议信息,协议由提供方指定,消费方被动接受< dubbo:application/>原创 2020-08-14 18:35:23 · 451 阅读 · 0 评论 -
Dubbo 配置方式示例
一 :XML 配置示例provider.xml 示例<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:dubbo="http://dubbo.apache.org/schema/dubbo"原创 2020-08-14 18:21:27 · 145 阅读 · 0 评论 -
Dubbo框架整体设计
整体设计图例说明:图中左边淡蓝背景的为服务消费方使用的接口,右边淡绿色背景的为服务提供方使用的接口,位于中轴线上的为双方都用到的接口。图中从下至上分为十层,各层均为单向依赖,右边的黑色箭头代表层之间的依赖关系,每一层都可以剥离上层被复用,其中,Service 和 Config 层为 API,其它各层均为 SPI。图中绿色小块的为扩展接口,蓝色小块为实现类,图中只显示用于关联各层的实现类。图中蓝色虚线为初始化过程,即启动时组装链,红色实线为方法调用过程,即运行时调时链,紫色三角箭头为继承,可以把原创 2020-08-14 16:58:07 · 73 阅读 · 0 评论 -
Dubbo SPI源码分析--getExtensionLoader 加载过程
如何进行实例化 ExtensionLoaderpublic static <T> ExtensionLoader<T> getExtensionLoader(Class<T> type) { // 必须传入类型 if (type == null) { throw new IllegalArgumentException("Extension type == null"); } /.原创 2020-08-14 14:50:56 · 152 阅读 · 0 评论 -
Dubbo SPI示例及源码分析
Dubbo中大量的使用了SPI来作为扩展点,通过实现同一接口的前提下,可以进行定制自己的实现类。 比如比较常见的协议,负载均衡,都可以通过SPI的方式进行定制化,自己扩展。Dubbo中已经存在的所有已经实现好的扩展点 如下Dubbo SPI 示例Dubbo 并未使用 Java SPI,而是重新实现了一套功能更强的 SPI 机制。Dubbo SPI 的相关逻辑被封装在了 ExtensionLoader 类中,通过 ExtensionLoader,我们可以加载指定的实现类。Dubbo SPI 所需的配置文原创 2020-08-13 19:59:25 · 147 阅读 · 0 评论 -
JDK的SPI机制
SPI简介SPI的全名为Service Provider Interface.大多数开发人员可能不熟悉,因为这个是针对厂商或者插件的。在java.util.ServiceLoader的文档里有比较详细的介绍。简单的总结下java spi机制的思想。我们系统里抽象的各个模块,往往有很多不同的实现方案,比如日志模块的方案,xml解析模块、jdbc模块的方案等。面向的对象的设计里,我们一般推荐模块之间基于接口编程,模块之间不对实现类进行硬编码。一旦代码里涉及具体的实现类,就违反了可拔插的原则,如果需要替换一种实原创 2020-08-13 14:24:19 · 116 阅读 · 0 评论 -
Dubbo管理控制台 dubbo-admin使用
作用主要包含:服务管理 、 路由规则、动态配置、服务降级、访问控制、权重调整、负载均衡等管理功能如我们在开发时,需要知道Zookeeper注册中心都注册了哪些服务,有哪些消费者来消费这些服务。我 们可以通过部署一个管理中心来实现。其实管理中心就是一个web应用,原来是war(2.6版本以前)包需 要部署到tomcat即可。现在是jar包可以直接通过java命令运行。安装部署下载地址 https://github.com/apache/dubbo-admin下载时选择master版本,下载zi原创 2020-08-13 12:39:20 · 431 阅读 · 0 评论