DUBBO-配置xml文件介绍
hello world demo中有很多配置。这里介绍一下官网对dubbo配置的介绍。
一、Hello world中的配置文件
官网介绍都覆盖了,不多说。
二、官网对配置文件介绍(翻译官网文档)
1. xml配置文件形式
-
provider.xml demo
<?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="hello-world-app" /> <dubbo:registry address="multicast://224.5.6.7:1234" /> <dubbo:protocol name="dubbo" port="20880" /> <dubbo:service interface="org.apache.dubbo.demo.DemoService" ref="demoServiceLocal" /> <dubbo:reference id="demoServiceRemote" interface="org.apache.dubbo.demo.DemoService" /> </beans>
tag purpose introdution dubbo:service/ 暴露服务 暴露服务,定义服务信息,可以通过多种协议暴露协议,也可以将服务注册到多个注册中心 dubbo:reference/ 引用服务 订阅多个注册中心,创建一个远程代理 dubbo:protocol/ 配置协议 定义服务端协议,消费端遵守协议 dubbo:aplication/ 应用配置 应用于服务端和消费端 dubbo:module/ 模块配置 可选 dubbo:registry/ 注册中心 注册信息:地址,协议等 dubbo:monitor/ 监控中心 可选 dubbo:provider/ 服务端默认配置 可选 dubbo:consumer/ 消费端默认配置 可选 dubbo:method/ 方法级别配置 为服务配置和消费配置提供方法级别配置 dubbo:argument/ 参数配置 个性配置方法参数配置 -
配置标签的关系
-
配置优先级
- 从高到底:方法级别 > 接口级别 > 默认/全局级别
- 同级别,服务端的优先级高于消费端
举例来说明一下,超时时间设置的优先级
2. properties配置文件形式
-
如果你的dubbo很简单,没有多注册中心,也没有多协议,而且你希望spring容器之间共享该配置文件,你可以使用dubbo.properties来默认配置文件。Dubbo将从根CLASSPATH下加载dubbo.properties。你也可以在JVM参数中指明路径,Ddubbo.properties.file=XXX.properties。
-
映射规则
- dubbo.application.name=test equals <dubbo:application name=“test” />
- dubbo.protocol.rmo.port=1099 equals <dubbo:protocol name=“rmi” port=“1099” />
-
典型dubbo.properties demo
dubbo.application.name=foo dubbo.application.owner=bar dubbo.registry.address=10.20.153.10:9090
-
优先级
-
从高到低如下
-
JVM -D 参数 > xml配置文件 > properties > 默认配置
-
3. API Configuration
- 所有API属性都能对应到XML中,例如ApplicationConfig.setName(“xxx”) equals to <dubbo:application name=“xxx” />
- 什么时候使用api配置呢,当和OpenAPI、ESB、Test、Mock等整合时候推荐(不理解),大部分情况下推荐使用xml配置。
- 具体可以到官网参考,这里代码就不写了。
4. Annotation Configuration
- 需要dubbo版本为2.6.3以上,完整例子
5. Configuration Loading Process
-
dubbo框架在应用启动时如何收集必须的配置参数呢?
四大配置源(优先级逐降)
jvm -Dproperty
外部配置(dubbo 2.5.8以后)
和springboot注解@PropertySource(“META-INF/config.properties”)、@EnableDubboConfig有关
详细参考,Dubbo外部化配置
ServiceConfig、ReferenceConfig和其它接口收集的配置
本地配置文件dubbo.properties