Dubbo常用配置项说明

概述Dubbo的配置项非常多,但所有配置项分为三大类,服务发现、服务治理、性能调优 。服务发现类的配置项,表示该配置项用于服务的注册与发现,目的是让消费方找到提供方;服务治理类的配置项,表示该配置项用于治理服务间的关系,或为开发测试提供便利条件;对于性能调优类的配置项,则表示该配置项用于调优性能,不同的选项对性能会产生影响 。所有配置最终都将转换为URL表示,并由服务提供方生成,经注册中心传递给消费方,各属性对应URL的参数 。不同的配置项,有不同的使用场景,掌握配置项的含义和使用场景,是用好Dubbo框架的基本功 。
Dubbo目前可供配置的配置项或者xml标签一共有13种,涉及可配置的属性210个,有些配置项和属性存在优先级和缺省关系,也并不是每个配置项都是必须的 。下面是这13种配置项及其常用属性的配置说明 。
dubbo:service服务提供者暴露服务配置,用来配置一个服务,在服务提供者端进行配置 。对应的配置类是org.Apache.dubbo.config.ServiceConfig 。比如下面的配置,定义和曝露了一个用户服务userService 。
interface:服务接口名,一般使用接口的完整类名,必填项
ref:服务接口实现类bean的id引用,必填项
<bean id="userService" class="com.fandou.coffee.provider.user.UserServiceImpl"/><dubbo:service interface="com.fandou.coffee.api.user.UserService" ref="userService"/>dubbo:reference服务消费者引用服务配置,在服务消费者端配置,用来定义引用一个远程的服务 。对应的配置类是org.apache.dubbo.config.ReferenceConfig 。
id:服务引用BeanId,必填项
interface:服务接口名,一般使用接口的完整类名,与dubbo:service中的interface保持一致,必填项
check:检查引用的服务是否存在,属于服务治理类的属性,默认为true,如果注册中心不存在应用的服务,将报错抛出异常 。可选项 。
<dubbo:reference id="userService" check="false" interface="com.fandou.coffee.api.user.UserService"/>dubbo:protocol服务提供者协议配置,服务提供者端或服务消费者端均可配置 。对应的配置类是org.apache.dubbo.config.ProtocolConfig 。同时,如果需要支持多协议,可以声明多个dubbo:protocol标签,并在dubbo:service中通过protocol属性指定使用的协议,多个协议id用逗号分隔 。
id:协议BeanId,可以在dubbo:service的protocol引用此id,如果id不填,缺省和name属性值一样,重复则在name后加序号 。可选项 。
name:协议名称,如果不配置dubbo:protocol,将使用dubbo:provider中的设置,默认dubbo 。必填 。
port:协议通信端口号,可选项,缺省值20880.
<dubbo:protocol name="dubbo" port="20880"/>dubbo:registry注册中心配置,Dubbo目前主要支持zookeeper以及redis等 。对应的配置类是org.apache.dubbo.config.RegistryConfig 。同时如果有多个不同的注册中心,可以声明多个dubbo:registry标签,并在dubbo:service或dubbo:reference的registry属性指定使用的注册中心 。
id:注册中心引用BeanId,可选项,可以在dubbo:service的registry或dubbo:reference的registry中引用此ID 。
address:注册中心服务器地址,格式为protocol://ip:port,必填项 。如果地址没有端口缺省为9090,同一集群内的多个地址用逗号分隔,如:protocol://ip:port,protocol://ip:port,不同集群的注册中心,请配置多个dubbo:registry标签 。
protocol:注册中心地址协议,支持dubbo, multicast, zookeeper, redis, consul, sofa, etcd, nacos等协议,可选项,缺省值为dubbo 。
port:注册中心缺省端口,当address没有带端口时使用此端口作为缺省值,可选项,缺省值为9090 。
username:登录注册中心用户名,如果注册中心不需要验证可不填 。可选项 。
password:登录注册中心密码,如果注册中心不需要验证可不填 。可选项 。
transport:网络传输方式,可选mina,netty 。可选项,缺省值为netty 。
下面的配置,使用address属性,指定了使用的协议、注册中心服务器地址以及端口号
<dubbo:registry address="zookeeper://192.168.8.156:2181"/>dubbo:Application应用信息配置,以及qos等 。对应的配置类是org.apache.dubbo.config.ApplicationConfig 。
name:当前应用名称,用于注册中心计算应用间依赖关系,注意:消费者和提供者应用名不要一样,此参数不是匹配条件,当前项目叫什么名字就填什么,和提供者消费者角色无关 。必填项 。
logger:日志输出方式,可选:slf4j,jcl,log4j,log4j2,jdk,缺省值为slf4j 。


推荐阅读