DUBBO-配置xml文件介绍
hello world demo中有很多配置。这里介绍一下官网对dubbo配置的介绍。
一、Hello world中的配置文件
官网介绍都覆盖了,不多说。
二、官网对配置文件介绍(翻译官网文档)
dubbo configuration
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