Dubbo常用的xml配置
所有配置项分为三大类:
- 服务发现:表示该配置项用于服务的注册与发现,目的是让消费方找到提供方。
- 服务治理:表示该配置项用于治理服务间的关系,或为开发测试提供便利条件。
- 性能调优:表示该配置项用于调优性能,不同的选项对性能会产生影响。
所有配置最终都将转换为 URL表示,并由服务提供方生成,经注册中心传递给消费方,各属性对应 URL 的参数。
- XML Schema: http://dubbo.apache.org/schema/dubbo/dubbo.xsd
- 注意:只有 group,interface,version 是服务的匹配条件,三者决定是不是同一个服务,其它配置项均为调优和治理参数。
- URL 格式:protocol://username:password@host:port/path?key=value&key=value
xml schema示例:
<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:dubbo="http://dubbo.apache.org/schema/dubbo"
xmlns="http://www.springframework.org/schema/beans"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://dubbo.apache.org/schema/dubbo http://dubbo.apache.org/schema/dubbo/dubbo.xsd">
</beans>
dubbo:application
应用信息配置。对应的配置类:org.apache.dubbo.config.ApplicationConfig
常用的配置:
1)name
当前应用名称,用于注册中心计算应用间依赖关系。你当前项目叫什么名字就填什么。
dubbo:service
服务提供者暴露服务配置。对应的配置类:org.apache.dubbo.config.ServiceConfig。
示例:
<bean id="demoService" class="org.apache.dubbo.samples.basic.impl.DemoServiceImpl"/>
<dubbo:service interface="org.apache.dubbo.samples.basic.api.DemoService" ref="demoService"/>
常用的配置:
1)interface
必填。作用是服务发现。
服务接口名。
2)ref
必填。作用是服务发现。
服务对象实现引用。
3)group
可选。作用是服务发现。
服务分组,当一个接口有多个实现,可以用分组区分。
4)delay
可选。作用是性能调优。
延迟注册服务时间(毫秒) ,设为-1时,表示延迟到Spring容器初始化完成时暴露服务。默认是0。
5)timeout
可选。作用是性能调优。
远程服务调用超时时间(毫秒)。默认是1000。
6)retries
可选。作用是性能调优。
远程服务调用重试次数,不包括第一次调用,不需要重试请设为0。默认是2。
7)connections
可选。作用是性能调优。
对每个提供者的最大连接数,rmi、http、hessian等短连接协议表示限制连接数,dubbo等长连接协表示建立的长连接个数。默认是100。
8)loadbalance
可选。作用是性能调优。
负载均衡策略,可选值:random,roundrobin,leastactive,分别表示:随机,轮询,最少活跃调用。默认是random。
9)registry
可选。作用是配置关联。
向指定注册中心注册,在多个注册中心时使用,值为<dubbo:registry>的id属性,多个注册中心ID用逗号分隔,如果不想将该服务注册到任何registry,可将值设为N/A。默认是向所有registry注册。
10)provider
可选。作用是配置关联。
指定provider,值为<dubbo:provider>的id属性。默认是第一个provider配置。
11)accesslog
可选。作用是服务治理。
设为true,将向logger中输出访问日志,也可填写访问日志文件路径,直接把访问日志输出到指定文件。默认值是false。
12)weight
可选。作用是性能调优。
服务权重
13)executes
可选。作用是性能调优。
服务提供者每服务每方法最大可并行执行请求数。
14)cluster
可选。作用是性能调优。
集群方式,可选:failover/failfast/failsafe/failback/forking。默认是failover。
15)filter
可选。作用是性能调优。
服务提供方远程调用过程拦截器名称,多个名称用逗号分隔。
16)listener
可选。作用是性能调优。
服务提供方导出服务监听器名称,多个名称用逗号分隔。
17)protocol
可选。作用是配置关联。
使用指定的协议暴露服务,在多协议时使用,值为<dubbo:protocol>的id属性,多个协议ID用逗号分隔。
18)register
可选。作用是服务治理。
该协议的服务是否注册到注册中心。默认是true。
dubbo:reference
服务消费者引用服务配置。对应的配置类: org.apache.dubbo.config.ReferenceConfig。
示例:
<!--配置代理-->
<dubbo:reference id="demoService" check="false" interface="org.apache.dubbo.samples.basic.api.DemoService"/>
常用的配置:
1)id
必填。
服务引用BeanId(类似Spring中的beanId)。
2)interface
必填。作用是服务发现。
服务接口名。
3)group
可选。作用是服务发现。
服务分组,当一个接口有多个实现,可以用分组区分,必需和服务提供方一致。
4)timeout
可选。作用是性能调优。
服务方法调用超时时间(毫秒)。默认是<dubbo:consumer>的timeout。
5)retries
可选。作用是性能调优。
远程服务调用重试次数,不包括第一次调用,不需要重试请设为0。默认是<dubbo:consumer>的retries。
6)connections
可选。作用是性能调优。
对每个提供者的最大连接数,rmi、http、hessian等短连接协议表示限制连接数,dubbo等长连接协表示建立的长连接个数。默认是<dubbo:consumer>的connections。
7)loadbalance
可选。作用是性能调优。
负载均衡策略,可选值:random,roundrobin,leastactive,分别表示:随机,轮询,最少活跃调用。默认是<dubbo:consumer>的loadbalance。
8)check
可选。作用是服务治理。
启动时检查提供者是否存在,true报错,false忽略。默认是<dubbo:consumer>的check。
9)cache
可选。作用是服务治理。
以调用参数为key,缓存返回结果,可选:lru, threadlocal, jcache等。
10)validation
可选。作用是服务治理。
是否启用JSR303标准注解验证,如果启用,将对方法参数上的注解进行校验。
11)actives
可选。作用是性能调优。
每服务消费者每服务每方法最大并发调用数。默认是0。
12)cluster
可选。作用是性能调优。
集群方式,可选:failover/failfast/failsafe/failback/forking。默认是failover。
13)filter
可选。作用是性能调优。
服务提供方远程调用过程拦截器名称,多个名称用逗号分隔。
14)listener
可选。作用是性能调优。
服务提供方导出服务监听器名称,多个名称用逗号分隔。
dubbo:protocol
服务提供者协议配置。对应的配置类: org.apache.dubbo.config.ProtocolConfig。同时,如果需要支持多协议,可以声明多个 <dubbo:protocol> 标签,并在 <dubbo:service> 中通过 protocol 属性指定使用的协议。
常用的配置:
1)name
必填。
协议名称。默认是dubbo。
2)port
服务端口。
dubbo协议缺省端口为20880,rmi协议缺省端口为1099,http和hessian协议缺省端口为80;如果没有配置port,则自动采用默认端口,如果配置为-1,则会分配一个没有被占用的端口。Dubbo 2.4.0+,分配的端口在协议缺省端口的基础上增长,确保端口段可控。
3)threadpool
可选。作用是性能调优。
线程池类型,可选:fixed/cached。默认是fixed。
4)threads
可选。作用是性能调优。
服务线程池大小(固定大小)。默认是200。
5)iothreads
可选。作用是性能调优。
io线程池大小(固定大小)。默认是cpu个数+1。
6)accepts
可选。作用是性能调优。
服务提供方最大可接受连接数。默认是0。
7)payload
可选。作用是性能调优。
请求及响应数据包大小限制,单位:字节。默认是8388608(=8M)。
8)serialization
可选。作用是性能调优。
协议序列化方式,当协议支持多种序列化方式时使用,比如:dubbo协议的dubbo,hessian2,java,compactedjava,以及http协议的json等。
dubbo协议缺省为hessian2,rmi协议缺省为java,http协议缺省为json。
9)buffer
可选。作用是性能调优。
网络读写缓冲区大小。默认是8192。
dubbo:method
方法级配置。对应的配置类: org.apache.dubbo.config.MethodConfig。同时该标签为 <dubbo:service> 或 <dubbo:reference> 的子标签,用于控制到方法级。
常用的配置:
1)name
必填。方法名。
2)timeout
可选。作用是性能调优。
方法调用超时时间(毫秒)。
3)retries
可选。作用是性能调优。
远程服务调用重试次数,不包括第一次调用,不需要重试请设为0。默认是<dubbo:reference>的retries。
4)loadbalance
可选。作用是性能调优。
负载均衡策略,可选值:random,roundrobin,leastactive,分别表示:随机,轮询,最少活跃调用。
5)actives
可选。作用是性能调优。
每服务消费者最大并发调用限制。默认是0。
6)cache
可选。作用是服务治理。
以调用参数为key,缓存返回结果,可选:lru, threadlocal, jcache等。
7)validation
可选。作用是服务治理。
是否启用JSR303标准注解验证,如果启用,将对方法参数上的注解进行校验。
dubbo:argument
方法参数配置。对应的配置类: org.apache.dubbo.config.ArgumentConfig。该标签为 <dubbo:method> 的子标签,用于方法参数的特征描述。
示例:
<dubbo:method name="findXxx" timeout="3000" retries="2">
<dubbo:argument index="0" callback="true" />
</dubbo:method>
常用的配置:
1)index
必填。
参数索引。0、1......
2)callback
可选。
参数是否为callback接口,如果为callback,服务提供方将生成反向代理,可以从服务提供方反向调用消费方,通常用于事件推送。
dubbo:config-center
配置中心。对应的配置类:org.apache.dubbo.config.ConfigCenterConfig。
Zookeeper配置中心示例:
<dubbo:config-center address="zookeeper://127.0.0.1:2181"/>
或
dubbo.config-center.address=zookeeper://127.0.0.1:2181
或
ConfigCenterConfig configCenter = new ConfigCenterConfig();
configCenter.setAddress("zookeeper://127.0.0.1:2181");
更多的外部化配置:https://dubbo.apache.org/zh/docs/references/configuration/external-config/
常用的配置:
1)address
必填。
配置中心地址。
2)protocol
可选。
使用哪个配置中心:apollo、zookeeper、nacos等。
以zookeeper为例:
- 指定protocol,则address可以简化为127.0.0.1:2181;
- 不指定protocol,则address取值为zookeeper://127.0.0.1:2181
3)check
可选。
当配置中心连接失败时,是否终止应用启动。默认true。
4)config-file
可选。
全局级配置文件所映射到的key
zookeeper - 默认路径/dubbo/config/dubbo/dubbo.properties
apollo - dubbo namespace中的dubbo.properties键
5)timeout
可选。
获取配置的超时时间。默认是3000ms。
6)include-spring-env
使用Spring框架时支持,为true时,会自动从Spring Environment中读取配置。
默认依次读取:
- key为dubbo.properties的配置
- key为dubbo.properties的PropertySource
7)cluster
可选。
含义视所选定的配置中心而不同。
如Apollo中用来区分不同的配置集群
8)group
可选。
含义视所选定的配置中心而不同。
nacos - 隔离不同配置集
zookeeper - 隔离不同配置集
9)namespace
通常用于多租户隔离,实际含义视具体配置中心而不同。
如:
- zookeeper - 环境隔离,默认值dubbo;
- apollo - 区分不同领域的配置集合,默认使用dubbo和application
dubbo:registry
注册中心配置。对应的配置类: org.apache.dubbo.config.RegistryConfig。同时如果有多个不同的注册中心,可以声明多个 <dubbo:registry> 标签,并在 <dubbo:service> 或 <dubbo:reference> 的 registry 属性指定使用的注册中心。
更多的说明:https://dubbo.apache.org/zh/docs/references/registry/
常用的配置:
1)address
必填。作用是服务发现。
注册中心服务器地址,如果地址没有端口缺省为9090,同一集群内的多个地址用逗号分隔,如:ip:port,ip:port,不同集群的注册中心,请配置多个<dubbo:registry>标签。
2)id
可选。作用是配置关联。
注册中心引用BeanId,可以在<dubbo:service registry="">或<dubbo:reference registry="">中引用此ID
3)protocol
可选。作用是服务发现。
注册中心地址协议,支持dubbo, multicast, zookeeper, redis, consul(2.7.1), sofa(2.7.2), etcd(2.7.2), nacos(2.7.2)等协议。默认是dubbo。
4)port
可选。作用是服务发现。
注册中心缺省端口,当address没有带端口时使用此端口做为缺省值。默认是9090。
5)username
可选。作用是服务治理。
登录注册中心用户名,如果注册中心不需要验证可不填。
6)password
可选。作用是服务治理。
登录注册中心密码,如果注册中心不需要验证可不填。
7)timeout
可选。作用是性能调优。
注册中心请求超时时间(毫秒)。默认是5000。
8)session
可选。作用是性能调优。
注册中心会话超时时间(毫秒),用于检测提供者非正常断线后的脏数据,比如用心跳检测的实现,此时间就是心跳间隔,不同注册中心实现不一样。默认是60000。
9)wait
可选。作用是性能调优。
停止时等待通知完成时间(毫秒)。默认是0。
10)check
可选。作用是服务治理。
注册中心不存在时,是否报错。默认是true。
11)group
可选。作用是服务治理。
服务注册分组,跨组的服务不会相互影响,也无法相互调用,适用于环境隔离。默认是dubbo。
dubbo:provider
服务提供者缺省值配置。对应的配置类: org.apache.dubbo.config.ProviderConfig。同时该标签为 <dubbo:service> 和 <dubbo:protocol> 标签的缺省值设置。
常用的配置:https://dubbo.apache.org/zh/docs/references/xml/dubbo-provider/
dubbo:consumer
服务消费者缺省值配置。配置类: org.apache.dubbo.config.ConsumerConfig 。同时该标签为 <dubbo:reference> 标签的缺省值设置。
常用的配置:https://dubbo.apache.org/zh/docs/references/xml/dubbo-consumer/
dubbo:module
模块信息配置。对应的配置类 org.apache.dubbo.config.ModuleConfig
常用的配置:https://dubbo.apache.org/zh/docs/references/xml/dubbo-module/
dubbo:monitor
监控中心配置。对应的配置类: org.apache.dubbo.config.MonitorConfig
常用的配置:https://dubbo.apache.org/zh/docs/references/xml/dubbo-monitor/
dubbo:parameter
选项参数配置。对应的配置类:java.util.Map。同时该标签为<dubbo:protocol>或<dubbo:service>或<dubbo:provider>或<dubbo:reference>或<dubbo:consumer>的子标签,用于配置自定义参数,该配置项将作为扩展点设置自定义参数使用。
常用配置:https://dubbo.apache.org/zh/docs/references/xml/dubbo-parameter/
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!