Dubbo采用全spring配置方式,透明化接入应用,对应用没有任何API侵入,只需用Spring加载Dubbo的配置即可,Dubbo基于Spring的Schema扩展进行加载。
Dubbo配置说明
xml配置
所有配置项可分为三大类:
- 服务发现:该配置项用于服务的注册与发现,目的是让消费方找到提供方。
- 服务治理:该配置项用于治理服务间的关系,或者为开发测试提供便利条件。
- 性能调优:该配置项用于调优性能,不同的选项对性能会产生影响。
所有配置最终都将转化为URL表示,并由服务提供方生成,经注册中心传递给消费方,各属性对应URL的参数,URL格式如下:protocol://username:password@host:port/path?key=value&key=value
服务提供方<dubbo:service />
-
interface
dubbo服务暴露的接口全路径,例如:<dubbo:service interface="cn.test.edu.service.ItemService" />
-
ref
dubbo服务暴露接口的实现类,例如:
<bean id="itemServiceImpl" class="cn.test.edu.service.impl.ItemServiceImpl" /> <dubbo:service interface="cn.test.edu.service.ItemService" ref="itemServiceImpl" />
不过在spring框架中,采用IOC与DI,所以一般service实现类,都通过@Service注解,交由spring容器帮我们创建bean对象,默认id为类的首字母小写。所以可以直接写成,例如:
<dubbo:service interface="cn.test.edu.service.ItemService" ref="itemServiceImpl" />
-
timeout
远程调用服务超时时间,如果客户端服务端都配置了以客户端为准,客户端没有配置以服务端为准,单位毫秒,默认1000
服务消费方<dubbo:reference />
- interface
服务提供者接口全路径,例如:
<dubbo:reference interface="cn.test.edu.service.ItemService" />
- id
服务消费方引用Bean的id,一般为接口类的首字母小写。
服务提供方<protocol />
-
id
协议BeanId,可以在<dubbo:service protoco="" />
中引用此id,如果id不填,缺省和name属性值相同,重复则在name后加序号 -
name
协议名称,支持常见的传输协议:Dubbo、RMI、Hessain、WebService、Http等 -
port
dubbo协议缺省端口为20880,RMI协议缺省端口为1099,http和hessian协议缺省端口为80,如果配置为-1 或者配置port,则会分配一个没有被占用的端口。Dubbo 2.4.0+,分配的端口在协议缺省端口的基础上增长,确保端口端可控
注册中心配置<dubbo:registry />
-
id
注册中心引用BeanId,可以在<dubbo:service registry="" />
或<dubbo:reference registy="" />
中引用此id ,1.0.16以上版本 -
protocol
注册中心地址协议,支持dubbo,http,local三种协议,分别表示,dubbo地址,http地址,本地注册中心 -
address
注册中心服务器地址,如果地址没有端口缺省值为9090,同一集群内的多个地址用逗号分隔,如:ip:port,ip:port 不同集群的注册中心,请配置多个
应用配置<dubbo:application />
- name
必填项,当前应用名称,用于注册中心计算应用间依赖关系,注意:消费者和提供者应用名不要一样,此参数不是匹配条件