dubbo配置优先级
dubbo的配置可以配置在不同位置上,但是同时只能生效一个。
主要三个位置的配置:JVM配置
->配置文件
->外部配置
而之前所说的注解形式和xml配置形式和API配置都是属于配置文件配置。优先级的图示如下:
重写与优先级
优先级从高到低:
- JVM -D 参数:当你部署或者启动应用时,它可以轻易地重写配置,比如,改变 dubbo 协议端口;
- XML:XML 中的当前配置会重写 dubbo.properties 中的;
- Properties:默认配置,仅仅作用于以上两者没有配置时。
- 如果在 classpath 下有超过一个 dubbo.properties 文件,比如,两个 jar 包都各自包含了 dubbo.properties,dubbo 将随机选择一个加载,并且打印错误日志。
- 如果
id
没有在protocol
中配置,将使用name
作为默认属性。
dubbo配置属性说明
dubbo可供配置的属性有11个,其中较为常用的有
标签 | 用途 | 解释 | 备注 |
---|---|---|---|
<dubbo:service/> |
服务配置 | 用于暴露一个服务,定义服务的元信息,一个服务可以用多个协议暴露,一个服务也可以注册到多个注册中心 | 暴露服务接口。 |
<dubbo:method/> |
方法配置 | 用于 ServiceConfig 和 ReferenceConfig 指定方法级的配置信息,可选 |
暴露服务接口的指定方法 |
<dubbo:reference/> |
引用配置 | 用于创建一个远程服务代理,一个引用可以指向多个注册中心 | 接收暴露的接口。 |
<dubbo:protocol/> |
协议配置 | 用于配置提供服务的协议信息,协议由提供方指定,消费方被动接受 | RPC协议的相关设置,只需要在服务提供端设置,用于暴露接口。 |
<dubbo:application/> |
应用配置 | 用于配置当前应用信息,不管该应用是提供者还是消费者 | 项目应用的个性化信息 |
<dubbo:registry/> |
注册中心配置 | 用于配置连接注册中心相关信息 | 注册中心的相关配置 |
<dubbo:monitor/> |
监控中心配置 | 用于配置连接监控中心相关信息,可选 |
监控中心的相关配置 |
<dubbo:provider/> |
提供方配置 | 当 ProtocolConfig 和 ServiceConfig 某属性没有配置时,采用此缺省值,可选 |
服务提供端的一些统一配置 |
<dubbo:consumer/> |
消费方配置 | 当 ReferenceConfig 某属性没有配置时,采用此缺省值,可选 |
服务消费端的一些统一配置 |
<dubbo:module/> |
模块配置 | 用于配置当前模块信息,可选 |
|
<dubbo:argument/> |
参数配置 | 用于指定方法参数配置,可选 |
示例:对这些属性简单的配置
服务提供者
<?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"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.3.xsd
http://dubbo.apache.org/schema/dubbo
http://dubbo.apache.org/schema/dubbo/dubbo.xsd">
<!-- 提供方应用信息,用于计算依赖关系 -->
<dubbo:application name="spring-provider" />
<!-- 使用multicast广播注册中心暴露服务地址 -->
<dubbo:registry