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"
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="com.alibaba.dubbo.demo.DemoService" ref="demoServiceLocal" />
<dubbo:reference id="demoServiceRemote" interface="com.alibaba.dubbo.demo.DemoService" />
</beans>
标签如下所示:
-
<dubbo:service/>
:用于暴露一个服务 -
<dubbo:reference/>
:用于创建一个远程服务代理,一个引用可以指向多个注册中心 -
<dubbo:protocol/>
:用于配置提供服务的协议信息,协议由提供方指定,消费方被动接受 -
<dubbo:application/>
:用于配置当前应用信息,不管该应用是提供者还是消费者 -
<dubbo:registry/>
:用于配置连接注册中心相关信息 -
<dubbo:module/>
:(可选)用于配置当前模块信息 -
<dubbo:monitor/>
:(可选)用于配置连接监控中心相关信息 -
<dubbo:provider/>
:(可选)当 ProtocolConfig 和 ServiceConfig 某属性没有配置时,采用此缺省值 -
<dubbo:consumer/>
:(可选)当 ReferenceConfig 某属性没有配置时,采用此缺省值 -
<dubbo:method/>
:用于 ServiceConfig 和 ReferenceConfig 指定方法级的配置信息 -
<dubbo:argument/>
:用于指定方法参数配置
配置覆盖关系
- 方法级优先,接口级次之,全局配置再次之。
- 如果级别一样,则消费方优先,提供方次之。
其中,服务提供方配置,通过 URL 经由注册中心传递给消费方。
建议由服务提供方设置超时,因为一个方法需要执行多长时间,服务提供方更清楚,如果一个消费方同时引用多个服务,就不需要关心每个服务的超时设置。
属性配置
如果公共配置很简单,没有多注册中心,多协议等情况,或者想多个 Spring 容器想共享配置,可以使用 dubbo.properties 作为缺省配置。
Dubbo 将自动加载 classpath 根目录下的 dubbo.properties,可以通过JVM启动参数 -Ddubbo.properties.file=xxx.properties 改变缺省配置位置。
映射规则
将 XML 配置的标签名,加属性名,用点分隔,多个属性拆成多行:
比如:
-
dubbo.application.name=foo
等价于<dubbo:application name="foo" />
-
dubbo.registry.address=10.20.153.10:9090
等价于<dubbo:registry address="10.20.153.10:9090" />
如果 XML 有多行同名标签配置,可用 id 号区分,如果没有 id 号将对所有同名标签生效:
比如:
-
dubbo.protocol.rmi.port=1234
等价于<dubbo:protocol id="rmi" name="rmi" port="1099" />
*dubbo.registry.china.address=10.20.153.10:9090
等价于<dubbo:registry id="china" address="10.20.153.10:9090" />
下面是 dubbo.properties 的一个典型配置:
dubbo.application.name=foo
dubbo.application.owner=bar
dubbo.registry.address=10.20.153.10:9090
覆盖策略
JVM 启动 -D 参数优先,这样可以使用户在部署和启动时进行参数重写,比如在启动时需改变协议的端口。
XML 次之,如果在 XML 中有配置,则 dubbo.properties 中的相应配置项无效。
Properties 最后,相当于缺省值,只有 XML 没有配置时,dubbo.properties 的相应配置项才会生效,通常用于共享公共配置,比如应用名。
API配置
略(不喜欢这种配置)
注解配置
略