配置项参考手册

包含 Dubbo 支持的所有配置组件以及每个配置组件支持的所有配置项

配置详情

application

每个应用必须且仅有一个 application 配置,对应配置类:org.apache.dubbo.config.ApplicationConfig

属性对应 URL 参数类型必填默认值
nameapplicationstring必填服务治理当前应用的名称,用于注册中心计算应用之间的依赖关系。注意:消费者和提供者应用名称不能相同,此参数不是匹配条件,可以填写您当前项目的名称,与提供者和消费者的角色无关。例如,如果 kylin 应用调用 morgan 应用的服务,kylin 项目将是 kylin,morgan 项目将是 morgan。也许 kylin 也提供其他服务被其他人使用,但 kylin 项目始终被称为 kylin,所以注册中心会显示 kylin 依赖于 morgan版本 2.7 .0 或更高
compilercompilerstring可选javassist性能优化Java 字节码编译器,用于生成动态类,可选:jdk 或 javassist版本 2.7.0 或更高
loggerloggerstring可选slf4j性能优化日志输出方式,可选:slf4j、jcl、log4j、log4j2、jdk版本 2.7.0 或更高
ownerownerstring可选服务治理应用负责人,用于服务治理,请填写负责人邮箱前缀版本 2.0.5 及以上
organizationorganizationstring可选服务治理组织名称(BU 或部门),用于注册中心区分服务来源。建议此配置项不要使用 autoconfig,直接在配置中写死,比如 china、intl、itu、crm、asc、dw、aliexpress 等版本 2.0.0 及以上
architecture
architecture
string可选服务治理. 不同的架构使用不同的层级。版本 2.0. 7 及以上
environmentenvironmentstring可选服务治理应用环境,比如:develop/test/product,不同的环境使用不同的默认值,仅作为开发和测试功能的限制使用2.0.0 及以上版本
versionapplication.versionstring可选服务治理当前应用版本版本 2.7.0 或更高
dumpDirectorydump.directorystring可选服务治理当进程出现问题,比如线程池满了,框架自动 dump 文件的存储路径版本 2.7.0 或更高
qosEnableqos.enableboolean可选服务治理是否启用 qos 运维端口版本 2.7.0 或更高
qosHostqos.hoststring可选服务治理监控的网络接口地址,默认 0.0.0.0版本 2.7.3 或更高
qosPortqos.portint可选服务治理监控的网络端口版本 2.7.0 或更高
qosAcceptForeignIpqos.accept.foreign.ipboolean可选服务治理安全配置,是否接受除了 localhost 本地访问以外的外部请求版本 2.7.0 或更高
shutwaitdubbo.service.shutdown.waitstring可选服务治理优雅关闭时关闭等待时间(ms)版本 2.7.0 或更高
hostnamestring可选本地主机名服务治理hostname版本 2.7.5 或更高
registerConsumerregisterConsumerboolean可选true服务治理是否将实例注册到注册中心。仅当实例是纯消费者时设置为 false版本 2.7.5 及以上
repositoryapplication.versionstring可选服务治理当前应用版本版本 2.7.6 或更高
enableFileCachefile.cacheboolean可选true服务治理是否启用本地缓存版本 3.0.0 或更高
protocolstring可选dubbo服务治理首选协议,适用于无法确定首选协议时版本 3.0.0 或更高
metadataTypemetadata-typeString可选local服务治理应用级服务发现 元数据传递方式是从 Provider 的角度,Consumer 端的配置无效。可选值有
* remote - Provider 将元数据放到远程注册中心,Consumer 从注册中心获取;
* local - Provider 将元数据放到本地,Consumer 直接从 Provider 获取;
版本 2.7.5 及以上
metadataServicePortmetadata-service-portint可选服务治理如果 metadataType 配置为 local,此属性设置 MetadataService 服务使用的端口号版本 2.7.9 或更高
livenessProbeliveness-probestring可选服务治理与 k8s 系统存活探测相对应的概念和格式版本 3.0.0 或更高
就绪探测就绪探测string可选服务治理与 k8s 系统就绪探测相对应的概念和格式版本 3.0.0 或更高
启动探测启动探测string可选服务治理该概念和格式对应于 k8s 系统启动探测3.0.0 或更高版本
注册模式注册模式string可选全部服务治理控制地址注册行为,用于应用程序级服务发现和迁移。
* 实例仅注册应用程序级地址;
* 接口仅注册接口级地址;
* 全部(默认)注册应用程序级和接口级地址;
3.0.0 及以上版本
启用空保护启用空保护boolean可选true服务治理是否全局启用消费者端空地址列表的保护。启用后,注册中心推送的空地址将被忽略。默认值为 true3.0.0 或更高版本
参数Map<string, string>可选服务治理为扩展保留,任何参数都可以扩展和定义,所有扩展参数将原样反映在 URL 配置中2.7.0 及以上版本

服务

服务提供者公开服务配置。对应配置类:org.apache.dubbo.config.ServiceConfig

属性对应 URL 参数类型必填默认值
接口必需服务发现服务接口名称1.0.0 或更高版本
引用对象必需服务发现服务对象实现引用1.0.0 或更高版本
versionversionstring可选0.0.0服务发现服务版本,建议使用两位数版本,例如:1.0,通常接口不兼容时需要升级版本号1.0.0 或更高版本
分组分组string可选服务发现服务分组,当一个接口有多个实现时,可以通过分组进行区分1.0.7 或更高版本
路径string可选默认接口名称服务发现服务路径(注意:1.0 不支持自定义路径,始终使用接口名称,如果有 1.0 到 2.0,配置服务路径可能不兼容)1.0.12+
延迟延迟int可选0性能调优延迟注册服务时间(毫秒),设置为 -1 表示服务延迟到 Spring 容器初始化完成之后才注册1.0.14 及以上版本
超时超时int可选1000性能调优远程服务调用超时时间(毫秒)2.0.0 或更高版本
重试重试int可选2性能调优远程服务调用重试次数,不包括第一次调用,如果不需要重试,请设置为 02.0.0 或更高版本
连接连接int可选100性能调优每个提供者的最大连接数,rmi、http、hessian 等短连接协议表示连接数的限制,dubbo 等长连接协议表示建立的长连接数量2.0.0 及以上版本
负载均衡负载均衡string可选随机性能调优负载均衡策略,可选值
* 随机 - 随机;
* 轮询 - 轮询;
* 最少活跃 - 最少活跃调用;br/>* 一致性哈希 - 一致性哈希 (2.1.0+);
* 最短响应 - 最短响应 (2.7.7+);
2.0.0+
异步异步boolean可选false性能调优是否默认异步执行,不可靠异步,只忽略返回值,不阻塞执行线程2.0.0 以上版本
locallocal类/布尔值可选false服务治理设置为 true,表示使用默认代理类名,即:接口名 + Local 后缀,已过时,请使用 stub2.0.0 或以上
存根存根类/布尔值可选false服务治理设置为 true,表示使用默认代理类名,即:接口名 + Stub 后缀,服务接口客户端的本地代理类名,用于客户端在客户端执行本地逻辑,例如本地缓存等。本地代理类的构造函数必须允许传入远程代理对象,例如:public XxxServiceStub(XxxService xxxService)2.0.0 或更高版本
模拟模拟类/布尔值可选false服务治理设置为 true,表示使用默认 Mock 类名,即:接口名 + Mock 后缀,如果服务接口调用失败,则调用 Mock 实现类,Mock 类必须有一个无参构造函数,与 Local 的区别在于 Local 始终执行,而 Mock 仅在发生非业务异常(如超时、网络异常等)时执行,Local 在远程调用之前执行,Mock 在远程调用之后执行。版本 2.0.0 及以上
令牌令牌字符串/布尔值可选服务治理消费者绕过注册中心直接访问,保证注册中心的授权功能有效。如果使用点对点调用,则必须关闭 token 功能2.0.0 或更高版本
注册中心string可选默认注册到所有注册中心配置关联注册到指定的注册中心,用于多个注册中心,值为 dubbo:registry 的 id 属性,用于多个注册中心 ID 用逗号分隔,如果不想将服务注册到任何注册中心,可以将值设置为 N/A2.0.0 或更高版本
提供者string可选默认使用第一个提供者配置配置关联指定提供者,值为 dubbo:provider 的 id 属性2.0.0 以上版本
已弃用已弃用boolean可选false服务治理服务是否已弃用,如果设置为 true,消费者将打印服务已弃用警告错误日志2.0.5 或更高版本
动态动态boolean可选true服务治理服务是否动态注册,如果设置为 false,注册后将显示禁用状态,需要手动启用,服务提供者停止时不会自动取消注册,需要手动禁用。2.0.5 及以上版本
访问日志访问日志字符串/布尔值可选false服务管理设置为 true,访问日志将输出到日志记录器,也可以填写访问日志文件路径,将访问日志直接输出到指定文件2.0.5 及以上版本
ownerownerstring可选服务治理
文档文档string可选服务治理服务文档 URL2.0.5 或更高版本
权重权重int可选性能调优服务权重2.0.5 或更高版本
执行执行int可选0性能调优服务提供者每个服务和方法的最大并行执行请求数2.0.5 或更高版本
活跃活跃int可选0性能调优每个服务消费者每个服务每个方法的最大并发调用数2.0.5 或更高版本
代理代理string可选javassist性能调优生成动态代理,可选:jdk/javassist2.0.5 或更高版本
集群集群string可选故障转移性能调优集群模式,可选:故障转移/故障快速失败/故障安全/故障回退/分叉/可用/可合并 (2.1. )/区域感知 (2.7.5 或更高版本)2.0 .5 或更高版本
过滤器service.filterstring可选默认性能调优服务提供者远程调用过程拦截器名称,多个名称用逗号分隔2.0.5 或更高版本
监听器exporter.listenerstring可选默认性能调优服务提供者导出服务监听器名称,多个名称用逗号分隔
protocolstring可选配置关联使用指定的协议公开服务,用于多协议,值为 dubbo:protocol 的 id 属性,多个协议 ID 用逗号分隔2.0 .5 或更高版本
string可选服务治理服务提供者所在的层级。例如:biz、dao、intl:web、china:acton。2.0.7 及以上版本
注册注册boolean可选true服务治理该协议的服务是否注册到注册中心2.0.8 或更高版本
验证验证string可选服务治理是否启用 JSR303 标准注解验证,如果启用,将验证方法参数上的注解版本 2.7.0 或更高
参数Map<string, string>可选服务治理为扩展保留,任何参数都可以扩展和定义,所有扩展参数将原样反映在 URL 配置中版本 2.0.0 及以上

引用

服务消费者引用服务配置。对应配置类:org.apache.dubbo.config.ReferenceConfig

属性对应 URL 参数类型必填默认值
idstring必需配置关联服务引用 BeanId1.0.0 或更高版本
接口必需服务发现服务接口名称1.0.0 或更高版本
versionversionstring可选服务发现服务版本,与服务提供者的版本一致1.0.0 以上版本
分组分组string可选服务发现服务分组,当一个接口有多个实现时,可以通过分组进行区分,必须与服务提供者一致1.0.7 或更高版本
超时超时可选默认使用 dubbo:consumer 的超时时间性能调优服务方法调用超时时间(毫秒)1.0.5 或更高版本
重试重试int可选默认使用 dubbo:consumer 的重试次数性能调优远程服务调用重试次数,不包括第一次调用,请设置为 02.0. 版本 0 及以上
连接连接int可选默认使用 dubbo:consumer 的连接数性能调优每个提供者的最大连接数,rmi、http、hessian 等短连接协议表示连接数的限制,dubbo 等等长连接协议表示建立的长连接数量2.0.0 或更高版本
负载均衡负载均衡string可选默认使用 dubbo:consumer 的负载均衡性能调优负载均衡策略,可选值
* 随机 - 随机;
* 轮询 - 轮询
* 最少活跃 - 最少活跃调用;
* 一致性哈希 - 一致性哈希 (2.1.0 及以上版本);
* 最短响应 - 最短响应 (2.7.7 及以上版本);
2.0 .0+ 版本
异步异步boolean可选默认使用 dubbo:consumer 的异步性能调优是否异步执行,不可靠异步,只忽略返回值,不阻塞执行线程2.0.0 或更高版本
泛型泛型boolean可选默认使用 dubbo:consumer 的泛型服务治理是否默认泛型接口,如果是泛型接口,将返回 GenericService2.0.0 或更高版本
检查检查boolean可选默认使用 dubbo:consumer 的检查服务治理启动时检查提供者是否存在,true 将报错,false 将忽略2.0.0 或更高版本
URLURLstring可选服务治理点对点直接连接服务提供者地址,将绕过注册中心1.0.6 或更高版本
存根存根类/布尔值可选服务治理服务接口客户端本地代理类名称,用于在客户端执行本地逻辑,例如本地缓存等。本地代理类的构造函数必须允许输入远程代理对象,构造函数例如:public XxxServiceLocal(XxxService xxxService)2.0.0 或更高版本
模拟模拟类/布尔值可选服务治理服务接口调用失败的 Mock 实现类名称,Mock 类必须有一个无参构造函数,与 Local 的区别在于 Local 始终执行,而 Mock 仅在发生非业务异常(如超时、网络异常等)时执行,Local 在远程调用之前执行,Mock 在远程调用之后执行。Dubbo1.0.13 及以上版本支持
缓存缓存字符串/布尔值可选服务治理调用参数用作键来缓存返回的结果,可选:lru、threadlocal、jcache 等。Dubbo2.1.0 及以上版本支持
验证验证boolean可选服务治理是否启用 JSR303 标准注解验证,如果启用,将验证方法参数上的注解Dubbo2.1.0 及以上版本支持
代理代理boolean可选javassist性能调优选择动态代理实现策略,可选:javassist、jdk2.0.2 以上版本
客户端客户端string可选性能调优客户端传输类型设置,例如 Dubbo 协议的 netty 或 mina。Dubbo2.0.0 及以上版本支持
注册中心string可选默认情况下,服务列表将从所有注册中心获取,并将结果合并配置关联注册以从指定注册中心获取服务列表,在存在多个注册中心时使用,值为 dubbo:registry 的 id 属性,多个注册中心 ID 用逗号分隔2.0.0 或更高版本
ownerownerstring可选服务治理要调用服务负责人的服务治理,请填写负责人的邮件前缀版本 2.0.5 及以上
活跃活跃int可选0性能调优每个服务消费者每个服务每个方法的最大并发调用数2.0.5 或更高版本
集群集群string可选故障转移性能调优集群模式,可选:故障转移/故障快速失败/故障安全/故障回退/分叉/可用/可合并 (2.1. )/区域感知 (2.7.5 或更高版本)2.0 .5 或更高版本
连接连接int可选100性能调优每个提供者的最大连接数,rmi、http、hessian 等短连接协议表示连接数的限制,dubbo 等长连接协议表示建立的长连接数量2.0.0 及以上版本
过滤器reference.filterstring可选默认性能调优服务消费者远程调用过程拦截器名称,多个名称用逗号分隔2.0.5 或更高版本
监听器invoker.listenerstring可选默认性能调优服务消费者引用服务监听器名称,多个名称用逗号分隔2.0.5 版本或更高版本
string可选服务治理服务调用者所在的层级。例如:biz、dao、intl:web、china:acton。2.0.7 及以上版本
initinitboolean可选false性能调优是否在 afterPropertiesSet() 后立即初始化引用,否则等到有人注入或引用实例后再初始化。2.0.10 版本及以上
protocolprotocolstring可选服务治理仅调用指定协议的服务提供者,忽略其他协议。2.7.0 及以上版本
客户端客户端string可选dubbo 协议默认使用 netty服务发现协议客户端实现类型,例如:dubbo 协议 mina、netty 等。版本 2.7.0 或更高
providerPortprovider-portint可选服务网格当 dubbo.consumer.meshEnable=true 时,Dubbo 默认会将请求转换为 K8S 标准格式,并结合 VirtualService 和 DestinationRule 进行流量管理。此时,消费者可以感知到提供者。如果您不想使用 VirtualService 和 DestinationRule,请设置 providerPort 使消费者感知到提供者暴露的服务端口3.1.0 版本及以上
unloadClusterRelatedunloadClusterRelatedboolean可选false服务网格当 dubbo.consumer.meshEnable=true 时,在 Service Mesh 模式下,设置为 true 以卸载当前调用中与 Cluster 相关的 Directory、Router 和 Load Balance,将重试、负载均衡、超时等流量管理功能委托给 Sidecar,使用 VirtualService 和 DestinationRule 进行流量管理3.1.0 版本及以上
参数Map<string, string>可选服务治理为扩展保留,任何参数都可以扩展和定义,所有扩展参数将原样反映在 URL 配置中版本 2.0.0 及以上
providedByprovided-bystring可选服务网格当 dubbo.consumer.meshEnable=true 时,Dubbo 默认会将请求转换为 K8S 标准格式,并结合 VirtualService 和 DestinationRule 进行流量管理。此时,消费者可以感知到提供者。该值应与声明的 k8s service 保持一致3.1.0 版本或更高版本
providerNamespaceprovider-namespacestring可选服务网格当 dubbo.consumer.meshEnable=true 时,Dubbo 默认会将请求转换为 K8S 标准格式,并结合 VirtualService 和 DestinationRule 进行流量管理。此时,消费者可以感知到提供者。请设置 providerNamespace 使消费者能够根据此配置寻址提供者 dns,默认值为 default3.1.2 版本或更高版本

注册中心

注册中心配置。对应配置类:org.apache.dubbo.config.RegistryConfig。同时,如果存在多个不同的注册中心,可以声明多个 <dubbo:registry> 标签,并在 <dubbo:service><dubbo:reference>registry 属性中指定要使用的注册中心。

属性对应 URL 参数类型必填默认值
idstring可选配置关联注册中心引用 BeanId,可以在 <dubbo:service registry=""> 或 <dubbo:reference registry=""> 中引用1.0.16 版本或更高版本
addresshost:portstring必填服务发现注册中心服务器地址。如果地址没有端口,默认端口为 9090。同一个集群中的多个地址用逗号分隔。例如:ip:port, ip:port,不同集群的注册中心,请配置多个 dubbo:registry 标签1.0.16 版本或更高版本
protocolstring可选dubbo服务发现注册中心地址协议,支持 dubbomulticastzookeeperredisconsul(2.7. .2)etcd( 2.7.2)nacos(2.7.2) 等协议版本 2.0.0 及以上
portint可选9090服务发现注册中心的默认端口,当地址没有端口时,使用此端口作为默认值2.0.0 或更高版本
usernamestring可选服务治理登录注册中心的用户名,如果注册中心不需要验证,可以留空2.0.0 或更高版本
passwordstring可选服务治理登录注册中心的密码,如果注册中心不需要验证,可以留空2.0.0 或更高版本
transportregistry.transporterstring可选netty性能调优网络传输模式,可选 mina、netty2.0.0 或更高版本
超时registry.timeoutint可选5000性能调优注册中心请求超时时间(毫秒)2.0.0 或更高版本
sessionregistry.sessionint可选60000性能调优注册中心会话超时时间(毫秒),用于检测提供者异常断开连接后脏数据,例如心跳检测的实现,这个时间就是心跳间隔,不同注册中心会有所不同。2.1.0 版本及以上
zonezonestring可选服务治理注册中心所属的区域,通常用于流量隔离版本 2.7.5 或更高
fileregistry.filestring可选服务治理使用文件缓存注册中心地址列表和服务提供者列表。当应用程序重启时,将根据此文件恢复。注意:两个注册中心不能使用相同的文件存储2.0.0 或更高版本
waitregistry.waitint可选0性能调优停止时等待通知完成的时间(毫秒)2.0.0 或更高版本
检查检查boolean可选true服务治理当注册中心不存在时是否报告错误2.0.0 或更高版本
注册注册boolean可选true服务治理是否将服务注册到此注册中心,如果设置为 false,则只订阅,不注册2.0.5 及以上版本
subscribesubscribeboolean可选true服务治理是否订阅此注册中心服务,如果设置为 false,则只注册,不订阅2.0.5 或更高版本
动态动态boolean可选true服务治理服务是否动态注册,如果设置为 false,则注册后显示为禁用,需要手动启用,当服务提供者停止时,不会自动注销,需要手动禁用。2.0.5 及以上版本
分组分组string可选dubbo服务治理服务注册分组,跨分组服务互不影响,也不能互相调用,适合环境隔离。2.0.5 及以上版本
versionversionstring可选服务发现服务版本1.0.0 以上版本
simplifiedsimplifiedboolean可选false服务治理注册到注册中心的 URL 是否为简化模式(兼容低版本)版本 2.7.0 或更高
extra-keysextraKeysstring可选服务治理当 simplified=true 时,extraKeys 允许您在 URL 中除了默认参数之外,还放入额外的键,格式为:“interface,key1,key2”。2.7 .0 版本及以上
useAsConfigCenterboolean可选服务治理注册中心是否用作配置中心版本 2.7.5 或更高
useAsMetadataCenterboolean可选服务治理注册中心是否用作元数据中心版本 2.7.5 或更高
acceptsacceptsstring可选服务治理注册中心接收的 rpc 协议列表,多个协议用逗号分隔,例如 dubbo、rest版本 2.7.5 或更高
preferredpreferredboolean可选服务治理是否为首选注册中心。当订阅多个注册中心时,如果设置为 true,则优先使用这些注册中心版本 2.7.5 及以上
权重权重int可选性能调优注册流量权重。当使用多个注册中心时,可以使用此值调整注册流量的分配。设置首选注册中心时,此值无效2.7. 5 版本或更高版本
注册模式注册模式string可选全部服务治理控制地址注册行为,用于应用程序级服务发现和迁移。
* 实例仅注册应用程序级地址;
* 接口仅注册接口级地址;
* 全部(默认)注册应用程序级和接口级地址;
3.0.0 及以上版本
启用空保护启用空保护boolean可选true服务治理是否全局启用消费者端空地址列表的保护。启用后,注册中心推送的空地址将被忽略。默认值为 true3.0.0 或更高版本
参数Map<string, string>可选服务治理为扩展保留,任何参数都可以扩展和定义,所有扩展参数将原样反映在 URL 配置中版本 2.0.0 及以上

config-center

配置中心。对应配置类:org.apache.dubbo.config.ConfigCenterConfig

| 属性 | 对应 URL 参数 | 类型 | 是否必填 | 默认值 | 描述 | 兼容性 | | —————- | ———————- | ——— ———- | ——– | —————- | ————- ————————————————– | – —- | | protocol | protocol | string | 可选 | zookeeper | 使用哪个配置中心:apollo、zookeeper、nacos 等。
以 zookeeper 为例
1. 如果指定了 protocol,则地址可以简化为 127.0.0.1:2181;
2. 如果没有指定 protocol,则地址值为 zookeeper:// 127.0.0.1:2181 | 2.7.0 版本或更高版本 | | address | address | string | 必填 | | 配置中心地址。
请参考协议描述获取值 | 2.7.0 版本及以上 | | highestPriority | highest-priority| boolean | 可选 | true | 配置中心中的配置项优先级最高,即本地配置项会被覆盖。 | 2.7.0 版本及以上 | | namespace | namespace | string | 可选 | dubbo | 通常用于多租户隔离,实际含义取决于具体的配置中心。
例如
zookeeper - 环境隔离,默认值为 dubbo;
apollo - 区分不同域的配置集,默认使用 dubboapplication | 2.7.0 版本及以上 | | cluster | cluster | string | 可选 | | 含义取决于所选的配置中心。
它用于在 Apollo 中区分不同的配置集群 | 2.7.0 版本及以上 | group | group | string | 可选 | dubbo | 含义取决于所选的配置中心。
nacos - 隔离不同的配置集
zookeeper - 隔离不同的配置集 | 2.7.0 版本及以上 | | check | check | boolean | 可选 | true | 连接配置中心失败时是否终止应用程序启动。 | 2.7.0 版本及以上 | | configFile | config-file | string | 可选 | dubbo.properties | 全局配置文件映射到的键
zookeeper - 默认路径 /dubbo/config/dubbo/dubbo.properties
apollo - dubbo dubbo.properties 键在 namespace 中 | 2.7.0 版本或更高版本 | | appConfigFile | app-config-file | string | 可选 | | “configFile” 在全局范围内共享。此项仅限于此应用程序配置的属性 | 2.7.0+ | | timeout | timeout | int | 可选 | 3000ms | 获取配置的超时时间 | 2.7.0 版本或更高版本 | | username | username | string | 可选 | | 如果配置中心需要验证,则用户名
Apollo 尚未启用 | 2.7.0 版本或更高版本 | | password | password | string | 可选 | | 如果配置中心需要验证,则密码
Apollo 尚未启用 | 2.7.0 版本或更高版本 | | parameters | parameters | Map<string, string> | 可选 | | 扩展参数,用于支持不同配置中心的自定义配置参数 | 2.7.0 版本或更高版本 | | includeSpringEnv |include-spring-env| boolean | 可选 | false | 使用 Spring 框架时支持。当为 true 时,配置将自动从 Spring Environment 中读取。
默认情况下,
key 是 dubbo .properties 配置
key 是 Dubbo.properties PropertySource | 2.7.0 版本及以上 |

metadata-report-config

元数据中心。对应配置类:org.apache.dubbo.config.MetadataReportConfig

| 属性 | 对应 URL 参数 | 类型 | 是否必填 | 默认值 | 描述 | 兼容性 | | ————— | ——— | —— | ——– | ——- – | ———————————————– ————- | —— | | address | address | string | 必填 | | 元数据中心地址。 | 2.7.0 版本及以上 | protocol | protocol | string | 可选 | zookeeper | 元数据中心协议:zookeeper、nacos、redis 等。
以 zookeeper 为例
1. 如果指定了 protocol,则地址可以简化为 127.0.0.1:2181;
2. 如果没有指定 protocol,则地址值为 zookeeper:// 127.0.0.1:2181 | 2.7.13 版本及以上 | | port | port | int | 可选 | | 元数据中心端口号。指定端口,则地址可以简化,无需配置端口号 | 2.7.13 版本或更高版本 | | username | username | string | 可选 | | 元数据中心需要验证,用户名
Apollo 尚未启用 | 2.7.0 版本或更高版本 | | password | password | string | 可选 | | 元数据中心需要验证,密码
Apollo 尚未启用 | 版本 2.7.0 或更高 | | timeout | timeout | int | 可选 | | 获取元数据超时时间 (ms) | 版本 2.7.0 或更高 | | group | group | string | 可选 | dubbo | 元数据分组,适合环境隔离。它与注册中心 group 的含义相同 | 版本 2.7.0 及以上 | | retryTimes | retry-times | int | 可选 | 100 | 重试次数 | 版本 2.7.0 或更高 | | retryPeriod | retry-period | int | 可选 | 3000ms | 重试间隔 (ms) | 版本 2.7.0 或更高 | | cycleReport | cycle-report | boolean| 可选 | true | 是否每天更新完整元数据 | 版本 2.7.0 及以上 | | syncReport | sync-report | boolean| 可选 | false | 是否同步更新元数据,默认异步 | 版本 2.7.0 或更高 | | cluster | cluster | string | 可选 | | 含义取决于所选的元数据中心。
用于区分 Apollo 中不同的配置集群 | 版本 2.7.0 及以上 | | file | file | string | 可选 | | 使用文件缓存元数据中心列表,当应用重启时,会根据此文件进行恢复,注意:两个元数据中心不能使用同一个文件存储 | 版本 2.7.0 或更高 | | check | check | boolean | 可选 | true | 元数据中心连接失败时是否终止应用启动。 | 版本 3.0.0 及以上 | | reportMetadata | report-metadata | boolean | 可选 | false | 是否上传接口配置报告元数据到地址发现中,dubbo.application.metadata-type=remote 配置不生效时会进行上报,dubbo.application.metadata-type=local 时是否上报由配置值决定 | 版本 3.0.0 及以上 | | reportDefinition | report-definition | boolean | 可选 | true | 是否上报服务运维的元数据 | 版本 3.0.0 及以上 | | reportConsumerDefinition | report-consumer-definition | boolean | 可选 | true | 是否上报消费者端服务运维的元数据 | 版本 3.0.0 及以上 | | parameters | parameters | Map<string, string> | 可选 | | 扩展参数,用于支持不同元数据中心的自定义配置参数 | 版本 2.7.0 或更高 |

protocol

服务提供者协议配置。对应配置类:org.apache.dubbo.config.ProtocolConfig。同时,如果需要支持多种协议,可以声明多个 <dubbo:protocol> 标签,并在 <dubbo:service> 中通过 protocol 属性指定使用哪种协议。

属性对应 URL 参数类型必填默认值
idstring可选dubbo配置关联protocol BeanId,可以在 <dubbo:service protocol=""> 中引用此 ID,如果 ID 未填写,默认与 name 属性值相同,如果重复,则会在 name 后面加上序号。2.0.5 及以上版本
namestring必填dubbo性能调优协议名称版本 2.0.5 及以上
portint可选dubbo 协议默认端口为 20880,rmi 协议默认端口为 1099,http 和 hessian 协议默认端口为 80;如果没有配置端口,则会自动使用默认端口,如果配置为-1,则会分配一个未占用的端口。对于 Dubbo 2.4.0+,分配的端口是在协议默认端口的基础上递增,以确保端口段可控。服务发现服务端口2.0.5 及以上版本
主机string可选自动查找本地 IP服务发现- 服务主机名,用于选择多个网卡或指定 VIP 和域名时使用,如果为空,则会自动查找本地 IP,- 建议不要配置,让 Dubbo 自动获取本地 IP2.0.5 或更高版本
线程池线程池string可选固定性能调优线程池类型,可选:fixed/cached/limit (2.5.3 以上)/eager (2.6.x 以上)版本 2.0.5 或更高
线程名称线程名称string可选性能调优线程池名称版本 2.7.6 或更高
线程线程int可选200性能调优服务线程池大小 (固定大小)2.0.5 或更高版本
核心线程核心线程int可选200性能调优线程池核心线程大小2.0.5 或更高版本
io 线程线程int可选CPU 数量 + 1性能调优IO 线程池大小 (固定大小)2.0.5 或更高版本
acceptsacceptsint可选0
有效载荷有效载荷int可选8388608(=8M)性能调优请求和响应数据包大小限制,单位:字节2.0.5 或更高版本
编解码器编解码器string可选dubbo性能调优协议编码2.0.5 或更高版本
序列化序列化string可选dubbo 协议默认使用 hessian2,rmi 协议默认使用 java,http 协议默认使用 json性能调优协议序列化方法,用于协议支持多种序列化方法时使用,例如:dubbo 协议的 dubbo、hessian2、java、compactedjava,http 协议的 json 等。2.0.5 及以上版本
访问日志访问日志字符串/布尔值可选服务治理设置为 true,访问日志将输出到日志记录器,也可以填写访问日志文件路径,直接将访问日志输出到指定文件2.0.5 版本或更高版本
路径string可选服务发现提供者上下文路径,服务路径的前缀2.0.5 或更高版本
传输器传输器string可选dubbo 协议默认使用 netty性能调优协议服务器和客户端实现类型,例如:dubbo 协议 mina、netty 等,可以拆分为服务器和客户端配置2.0.5 及以上版本
服务器服务器string可选Dubbo 协议默认使用 netty,http 协议默认使用 servlet性能调优协议的服务器端实现类型,例如:dubbo 协议的 mina、netty 等,http 协议的 jetty、servlet 等。2.0.5 及以上版本
客户端客户端string可选Dubbo 协议默认使用 netty性能调优协议客户端实现类型,例如:dubbo 协议 mina、netty 等。2.0.5 版本或更高版本
调度器调度器string可选dubbo 协议默认使用 all性能调优协议消息分发方法,用于指定线程模型,例如:dubbo 协议的 all、direct、message、execution、connection 等。2.1 .0+ 版本
队列队列int可选0性能调优线程池队列大小,当线程池满时,等待执行的队列大小,建议不要设置,当线程池满时,应该立即失败,并重试其他提供服务的机器,而不是排队,除非有特殊需要。2.0.5 及以上版本
字符集字符集string可选UTF-8性能调优序列化编码2.0.5 或更高版本
缓冲区缓冲区int可选8192性能调优网络读写缓冲区大小2.0.5 或更高版本
心跳心跳int可选0性能调优需要心跳来帮助检查连接是否断开2.0.10+
telnettelnetstring可选服务治理支持的 telnet 命令,用逗号分隔2.0.5 及以上版本
注册注册boolean可选true服务治理该协议的服务是否注册到注册中心2.0.8 或更高版本
contextpathcontextpathString可选默认为空字符串服务治理上下文路径版本 2.0.6 或更高
sslEnabledssl-enabledboolean可选false服务治理是否启用 ssl版本 2.7.5 或更高
参数参数Map<string, string>可选扩展参数2.0.0 或更高版本

提供者

服务提供者默认配置。对应配置类:org.apache.dubbo.config.ProviderConfig。同时,该标签也是 <dubbo:service><dubbo:protocol> 标签的默认值设置。

属性对应 URL 参数类型必填默认值
idstring可选dubbo配置关联protocol BeanId,可以在 <dubbo:service proivder=""> 中引用此 ID版本 1.0.16 以上
protocolstring可选dubbo性能调优协议名称1.0.16 版本或更高版本
主机string可选自动搜索本地 IP服务发现服务主机名,用于选择多个网卡或指定 VIP 和域名时使用,如果为空,则会自动搜索本地 IP。Dubbo 自动获取本地 IP1.0.16 版本或更高版本
线程线程int可选200性能调优服务线程池大小 (固定大小)1.0.16 版本或更高版本
有效载荷有效载荷int可选8388608(=8M)性能调优请求和响应数据包大小限制,单位:字节2.0.0 以上版本
路径string可选服务发现提供者上下文路径,服务路径的前缀2.0.0 或更高版本
传输器传输器string可选dubbo 协议默认使用 netty性能调优协议服务器和客户端实现类型,例如:dubbo 协议 mina、netty 等,可以拆分为服务器和客户端配置2.0.5 及以上版本
服务器服务器string可选Dubbo 协议默认使用 netty,http 协议默认使用 servlet性能调优协议的服务器端实现类型,例如:dubbo 协议的 mina、netty 等,http 协议的 jetty、servlet 等。版本 2.0.0 及以上
客户端客户端string可选Dubbo 协议默认使用 netty性能调优协议客户端实现类型,例如:dubbo 协议 mina、netty 等。2.0.0 或更高版本
调度器调度器string可选dubbo 协议默认使用 all性能调优协议消息分发方法,用于指定线程模型,例如:dubbo 协议的 all、direct、message、execution、connection 等。2.1 .0+ 版本
编解码器编解码器string可选dubbo性能调优协议编码2.0.0 或更高版本
序列化序列化string可选dubbo 协议默认使用 hessian2,rmi 协议默认使用 java,http 协议默认使用 json性能调优协议序列化方法,用于协议支持多种序列化方法时使用,例如:dubbo 协议的 dubbo、hessian2、java、compactedjava,http 协议的 json、xml2.0.5 及以上版本
默认boolean可选false配置关联是否为默认协议,用于多协议1.0.16 版本或更高版本
过滤器service.filterstring可选性能调优服务提供者远程调用过程拦截器名称,多个名称用逗号分隔2.0.5 或更高版本
监听器exporter.listenerstring可选性能调优服务提供者导出服务监听器名称,多个名称用逗号分隔2.0.5 或更高版本
线程池线程池string可选固定性能调优线程池类型,可选:fixed/cached/limit (2.5.3 以上)/eager (2.6.x 以上)版本 2.0.5 或更高
线程名称线程名称string可选性能调优线程池名称版本 2.7.6 或更高
acceptsacceptsint可选0
versionversionstring可选0.0.0服务发现服务版本,建议使用两位数版本,例如:1.0,通常接口不兼容时需要升级版本号2.0.5 或更高版本
分组分组string可选服务发现服务分组,当一个接口有多个实现时,可以通过分组进行区分2.0.5 或更高版本
延迟延迟int可选0性能调优延迟注册服务时间 (毫秒) - 设置为 -1 时,表示服务延迟到 Spring 容器初始化完成后才注册2.0.5 及以上版本
超时default.timeoutint可选1000性能调优远程服务调用超时时间(毫秒)2.0.5 或更高版本
重试default.retriesint可选2性能调优远程服务调用重试次数,不包括第一次调用,如果不需要重试,请设置为 02.0.5 版本或更高版本
连接default.connectionsint可选0性能调优每个提供者最大连接数,rmi、http、hessian 等短连接协议表示连接数限制,dubbo 等长连接协议表示建立的长连接数量2.0.5 及以上版本
负载均衡default.loadbalancestring可选随机性能调优负载均衡策略,可选值
* 随机 - 随机;
* roundrobin - 轮询;leastactive - 最少活跃调用;
* consistenthash - 一致性哈希 (2.1.0+);
* 最短响应 - 最短响应 (2.7.7+);
2.0.5+
异步default.asyncboolean可选false性能调优是否默认异步执行,不可靠且异步,只忽略返回值,不阻塞执行线程2.0.5 及以上版本
存根存根boolean可选false服务治理如果设置为 true,表示使用默认代理类名,即:接口名 + Local 后缀。2.0.5 及以上版本
模拟模拟boolean可选false服务治理设置为 true 表示使用默认 Mock 类名,即:接口名 + Mock 后缀。2.0.5 及以上版本
令牌令牌boolean可选服务治理Token 验证,空表示未启用,如果为 true,表示随机生成动态 Token2.0.5 及以上版本
注册中心注册中心string可选默认注册到所有注册中心配置关联注册到指定的注册中心,用于存在多个注册中心时,值为 dubbo:registry 的 id 属性,多个注册中心 ID 用逗号分隔,如果不想将服务注册到任何注册中心,可以将值设置为 N/A2.0.5 版本或更高版本
动态动态boolean可选true服务治理服务是否动态注册,如果设置为 false,注册后将显示禁用状态,需要手动启用,服务提供者停止时不会自动取消注册,需要手动禁用。2.0.5 及以上版本
访问日志访问日志字符串/布尔值可选false服务管理设置为 true,访问日志将输出到日志记录器,也可以填写访问日志文件路径,将访问日志直接输出到指定文件2.0.5 及以上版本
ownerownerstring可选服务治理
文档文档string可选服务治理服务文档 URL2.0.5 或更高版本
权重权重int可选性能调优服务权重2.0.5 或更高版本
执行执行int可选0性能调优服务提供者每个服务和方法的最大并行执行请求数2.0.5 或更高版本
活跃default.activesint可选0性能调优每个服务消费者每个服务每个方法的最大并发调用数2.0.5 或更高版本
代理代理string可选javassist性能调优生成动态代理,可选:jdk/javassist2.0.5 或更高版本
集群default.clusterstring可选故障转移性能调优集群模式,可选:failover/failfast/failsafe/failback/forking版本 2.0.5 以上
已弃用已弃用boolean可选false服务治理服务是否已弃用,如果设置为 true,消费者将打印服务已弃用警告错误日志2.0.5 或更高版本
队列队列int可选0性能调优线程池队列大小,当线程池满时,等待执行的队列大小,建议不要设置,当线程池满时,应该立即失败,并重试其他提供服务的机器,而不是排队,除非有特殊需要。2.0.5 及以上版本
字符集字符集string可选UTF-8性能调优序列化编码2.0.5 或更高版本
缓冲区缓冲区int可选8192性能调优网络读写缓冲区大小2.0.5 或更高版本
io 线程io 线程int可选CPU + 1性能调优IO 线程池,接收网络读写中断,序列化和反序列化,不处理业务,业务线程池见 threads 配置,该线程池与 CPU 相关,不建议配置。2.0.5 及以上版本
存活存活int可选服务管理线程池 keepAliveTime,默认单位为 ms2.0.5 或更高版本
telnettelnetstring可选服务治理支持的 telnet 命令,用逗号分隔2.0.5 及以上版本
waitwaitint可选服务治理停止服务时的等待时间
contextpathcontextpathString可选默认为空字符串服务治理上下文路径版本 2.0.6 或更高
string可选服务治理服务提供者所在的层级。例如:biz、dao、intl:web、china:acton。2.0.7 及以上版本
参数参数Map<string, string>可选服务治理扩展参数2.0.0 或更高版本

消费者

服务消费者默认配置。配置类:org.apache.dubbo.config.ConsumerConfig。同时,该标签也是 <dubbo:reference> 标签的默认值设置。

属性对应 URL 参数类型必填默认值
超时default.timeoutint可选1000性能调优远程服务调用超时时间(毫秒)1.0.16 版本或更高版本
重试default.retriesint可选2性能调优远程服务调用重试次数,不包括第一次调用,如果不需要重试,请设置为 0,仅在集群为 failback/failover 时有效版本 1.0.16 及以上
负载均衡default.loadbalancestring可选随机性能调优负载均衡策略,可选值
* 随机 - 随机;
* roundrobin - 轮询;leastactive - 最少活跃调用;
* consistenthash - 一致性哈希 (2.1.0+);
* 最短响应 - 最短响应 (2.7.7+);
1.0.16+
异步default.asyncboolean可选false性能调优是否默认异步执行,不可靠且异步,只忽略返回值,不阻塞执行线程2.0.0 或更高版本
发送default.sentboolean可选true服务治理异步调用时,当 flag sent=true 时,表示网络已发送数据版本 2.0.6 或更高
连接default.connectionsint可选100性能调优每个服务到每个提供者的最大连接数,rmi、http、hessian 等短连接协议支持此配置,dubbo 协议长连接不支持此配置1.0.16+ 版本
泛型泛型boolean可选false服务治理是否默认泛型接口,如果是泛型接口,将返回 GenericService2.0.0 以上版本
检查检查boolean可选true服务治理启动时检查提供者是否存在,true 报错,false 忽略版本 1.0.16 及以上
代理代理string可选javassist性能调优生成动态代理,可选:jdk/javassist2.0.5 或更高版本
ownerownerstring可选服务治理要调用服务负责人的服务治理,请填写负责人的邮件前缀版本 2.0.5 及以上
活跃default.activesint可选0性能调优每个服务消费者每个服务每个方法的最大并发调用数2.0.5 或更高版本
集群default.clusterstring可选故障转移性能调优集群模式,可选:failover/failfast/failsafe/failback/forking/available/mergeable (2.1. 以上)/zone-aware(2.7.5 以上)2.0.5 以上
过滤器reference.filterstring可选性能调优服务消费者远程调用过程拦截器名称,多个名称用逗号分隔2.0.5 或更高版本
监听器invoker.listenerstring可选性能调优服务消费者引用服务监听器的名称,多个名称用逗号分隔2.0.5 或更高版本
注册中心string可选默认注册到所有注册中心配置关联注册到指定的注册中心,用于多个注册中心时,值为 dubbo:registry 的 id 属性,用于多个注册中心 ID 用逗号分隔,如果不想将服务注册到任何注册中心,可以将值设置为 N/A2.0.5 版本或更高版本
string可选服务治理服务调用者所在的层级。例如:biz、dao、intl:web、china:acton。2.0.7 及以上版本
initinitboolean可选false性能调优是否在 afterPropertiesSet() 后立即初始化引用,否则等到有人注入或引用实例后再初始化。2.0.10 版本及以上
缓存缓存字符串/布尔值可选服务治理调用参数用作键来缓存返回的结果,可选:lru、threadlocal、jcache 等。版本 2.1.0 及以上支持
验证验证boolean可选服务治理是否启用 JSR303 标准注解验证,如果启用,将验证方法参数上的注解2.1.0 及以上版本支持
versionversionstring可选服务治理在 Dubbo 中为同一个服务配置多个版本2.2.0 及以上版本支持
客户端客户端string可选Dubbo 协议默认使用 netty性能调优协议客户端实现类型,例如:dubbo 协议 mina、netty 等。2.0.0 或更高版本
线程池线程池string可选固定性能调优线程池类型,可选:fixed/cached/limit (2.5.3 以上)/eager (2.6.x 以上)版本 2.0.5 或更高
核心线程核心线程int可选200性能调优线程池核心线程大小2.0.5 或更高版本
线程线程int可选200性能调优服务线程池大小 (固定大小)2.0.5 或更高版本
队列队列int可选0性能调优线程池队列大小,当线程池满时,等待执行的队列大小,建议不要设置,当线程池满时,应该立即失败,并重试其他提供服务的机器,而不是排队,除非有特殊需要。2.0.5 及以上版本
shareconnectionsshareconnectionsint可选1性能调优共享连接数。当 connection 参数设置为 0 时,会启用共享模式连接,默认只有一个连接。仅支持 dubbo 协议版本 2.7.0 及以上
referThreadNumint可选性能优化异步调用线程池大小版本 3.0.0 或更高
meshEnablemesh-enableboolean可选false服务网格Dubbo 网格模式切换。开启后,可以适配 SideCar 模式,将 Dubbo 服务调用转换为 K8S 标准调用。仅支持 Triple 协议,兼容 GRPC。设置为 true 后,原生对接 K8S,无需第三方注册中心,只需设置 dubbo.registry.address=N/A3.1.0 版本或更高版本
参数参数Map<string, string>可选服务治理扩展参数2.0.0 或更高版本

指标

指标配置。配置类:org.apache.dubbo.config.MetricsConfig

属性对应 URL 参数类型必填默认值
protocolprotocolstring可选prometheus性能调优协议名称,默认使用 prometheus版本 3.0.0 或更高
prometheusPrometheusConfig可选配置关联prometheus 相关配置版本 3.0.0 或更高
聚合AggregationConfig可选配置关联指标聚合相关配置3.0.0 或更高版本
  • PrometheusConfig 对应类:org.apache.dubbo.config.nested.PrometheusConfig
属性类型必填默认值描述
exporter.enabledboolean可选是否启用 prometheus exporter
exporter.enableHttpServiceDiscoveryboolean可选是否启用 http 服务发现
exporter.httpServiceDiscoveryUrlstring可选http 服务发现 URL
exporter.metricsPortint可选使用拉取方式时暴露的端口号
exporter.metricsPathstring可选使用拉取方式时暴露指标的路径
pushgateway.enabledboolean可选是否通过 prometheus 的 Pushgateway 发布指标
pushgateway.baseUrlstring可选Pushgateway 地址
pushgateway.usernamestring可选Pushgateway 用户名
pushgateway.passwordstring可选Pushgateway 密码
pushgateway.pushIntervalint可选推送指标间隔时间
  • AggregationConfig 对应类:org.apache.dubbo.config.nested.AggregationConfig
属性类型必填默认值描述
enabledboolean可选是否启用本地指标聚合功能
bucketNumint可选时间窗口桶的数量
timeWindowSecondsint可选时间窗口持续时间(秒)

ssl

TLS 认证配置。配置类:org.apache.dubbo.config.SslConfig

属性对应 URL 参数类型必填默认值
serverKeyCertChainPathserver-key-cert-chain-pathstring可选安全配置
serverPrivateKeyPathserver-private-key-pathstring可选安全配置服务器私钥路径版本 2.7.5 或更高
serverKeyPasswordserver-key-passwordstring可选安全配置服务器密钥密码版本 2.7.5 或更高
serverTrustCertCollectionPathserver-trust-cert-collection-pathstring可选安全配置服务器信任证书路径版本 2.7.5 或更高
clientKeyCertChainPathclient-key-cert-chain-pathstring可选安全配置客户端签名证书路径版本 2.7.5 或更高
clientPrivateKeyPathclient-private-key-pathstring可选安全配置客户端私钥路径版本 2.7.5 或更高
clientKeyPasswordclient-key-passwordstring可选安全配置客户端密钥密码版本 2.7.5 或更高
clientTrustCertCollectionPathclient-trust-cert-collection-pathstring可选安全配置客户端信任证书路径版本 2.7.5 或更高

module

模块信息配置。对应配置类 org.apache.dubbo.config.ModuleConfig

属性对应 URL 参数类型必填默认值
namemodulestring必填服务治理当前模块名称,用于注册中心计算模块之间的依赖关系版本 2.2.0 或更高
versionmodule.versionstring可选服务治理当前模块版本版本 2.2.0 或更高
ownermodule.ownerstring可选服务治理模块负责人,用于服务治理,请填写负责人邮箱前缀版本 2.2.0 以上
organizationmodule.organizationstring可选服务治理组织名称(BU 或部门),用于注册中心区分服务来源。建议此配置项不要使用 autoconfig,直接在配置中写死,例如 China、intl、itu、crm、asc、dw、aliexpress 等。版本 2.2.0 及以上
backgroundbackgroundboolean可选性能调优是否启用后台启动模式。如果启用,则无需等待 spring ContextRefreshedEvent 事件完成3.0.0 及以上版本
referAsyncreferAsyncboolean可选性能调优是否在消费者端启用异步调用3.0.0 或更高版本
referThreadNumreferThreadNumint可选性能调优异步调用线程池大小版本 3.0.0 或更高
exportAsyncexportAsyncboolean可选性能调优是否在服务器端启用导出3.0.0 或更高版本
exportThreadNumexportThreadNumint可选异步导出线程池大小版本 3.0.0 或更高

monitor

监控中心配置。对应配置类:org.apache.dubbo.config.MonitorConfig

属性对应 URL 参数类型必填默认值
protocolprotocolstring可选dubbo服务治理监控中心协议,如果是 protocol=“registry”,则表示从注册中心获取监控中心的地址,否则直接连接监控中心。版本 2.0.9 及以上
addressstring可选服务治理直接连接监控中心服务器地址,address=“10.20.130.230:12080”1.0.16 版本或更高版本
usernameusernamestring可选服务治理监控中心用户名版本 2.0.9 或更高
passwordpasswordstring可选服务治理监控中心密码版本 2.0.9 或更高
分组分组string可选服务治理grouping版本 2.0.9 或更高
versionversionstring可选服务治理版本号版本 2.0.9 或更高
intervalintervalstring可选服务治理间隔时间版本 2.0.9 或更高
参数参数Map<string, string>可选自定义参数2.0.0 或更高版本

method

方法级配置。对应配置类:org.apache.dubbo.config.MethodConfig。同时该标签是 servicereference 的子标签,用于控制到方法级别。

例如

<dubbo:reference interface="com.xxx.XxxService">
   <dubbo:method name="findXxx" timeout="3000" retries="2" />
</dubbo:reference>
属性对应 URL 参数类型必填默认值
namestring必需logo方法名称版本 1.0.8 或更高
超时.timeoutint可选默认是 timeout性能调优方法调用超时时间(毫秒)版本 1.0.8 或更高
重试.retriesint可选默认是 dubbo:reference 的 retries性能调优远程服务调用重试次数,不包括第一次调用,请设置为 0版本 2.0.0 或更高
负载均衡.loadbalancestring可选默认是 loadbalance性能调优负载均衡策略,可选值
* 随机 - 随机;
* roundrobin - 轮询;
* 最少活跃 - 最少活跃调用;
* consistenthash - 一致性哈希(版本 2.1.0+);
* shortestresponse - 最短响应(版本 2.7.7+);
2.0. 版本 0 及以上
异步.asyncboolean可选默认是 dubbo:reference 的 async性能调优是否异步执行,不可靠且异步,只忽略返回值,不阻塞执行线程1.0.9 以上版本
发送.sentboolean可选true性能调优异步调用时,当标记 sent=true 时,表示网络已经发送数据版本 2.0.6 或更高
活跃.activesint可选0性能调优每个服务消费者最大并发调用限制2.0.5 或更高版本
执行.executesint可选0性能调优每个服务和方法使用的最大线程数 - -,此属性仅在 dubbo:method 用作 dubbo:service 的子标签时有效2.0.5 及以上版本
已弃用.deprecatedboolean可选false服务治理服务方法是否已弃用,此属性仅在 dubbo:method 用作 dubbo:service 的子标签时有效版本 2.0.5 及以上
sticky.stickyboolean可选false服务治理设置为 true 此接口上的所有方法都使用同一个提供者。如果需要更复杂的规则,请使用路由2.0.6 或更高
return.returnboolean可选true性能调优方法调用是否需要返回值。它仅在 async 设置为 true 时生效。如果设置为 true,则将返回 future,或 onreturn 等回调方法。如果设置为 false,则在请求成功发送后直接返回 Null版本 2.0.6 以上
oninvoke属性属性,不反映在 URL 中String可选性能调优实例执行前拦截版本 2.0.6 或更高
onreturn属性属性,不反映在 URL 中String可选性能调优实例执行返回后拦截
onthrow属性属性,不反映在 URL 中String可选性能调优实例执行中异常拦截
oninvokeMethod属性属性,不反映在 URL 中String可选性能调优方法执行前拦截版本 2.0.6 或更高
onreturnMethod属性属性,不反映在 URL 中String可选性能调优方法执行返回后拦截版本 2.0.6 以上
onthrowMethod属性属性,不反映在 URL 中String可选性能调优方法执行有异常拦截版本 2.0.6 或更高
缓存.cache字符串/布尔值可选服务治理使用调用参数作为键缓存返回的结果,可选:lru、threadlocal、jcache 等。版本 2.1.0 以上
验证.validationboolean可选服务治理是否启用 JSR303 标准注解验证,如果启用,则会验证方法参数上的注解版本 2.1.0 或更高

argument

方法参数配置。对应配置类:org.apache.dubbo.config.ArgumentConfig。该标签是 method 的子标签,用于描述方法参数的特性,例如 XML 格式

<dubbo:method name="findXxx" timeout="3000" retries="2">
   <dubbo:argument index="0" callback="true" />
</dubbo:method>
属性对应 URL 参数类型必填默认值
indexint必需标识符参数索引版本 2.0.6 或更高
typeString选择 index 和 index 之一识别通过参数类型查找参数索引版本 2.0.6 或更高
callback.callbackboolean可选服务治理参数是否为回调接口,如果是回调,服务提供者会生成反向代理,消费者可以从服务提供者反向调用,通常用于事件推送。版本 2.0.6 以上

parameter

可选参数配置。对应配置类:java.util.Map。同时标签是 protocolserviceproviderreferenceconsumermonitorregistrymetadata-configconfig-center 的子标签,用于配置自定义参数,此配置项将作为扩展点设置自定义参数。

例如

<dubbo:protocol name="napoli">
   <dubbo:parameter key="http://10.20.160.198/wiki/display/dubbo/napoli.queue.name" value="xxx" />
</dubbo:protocol>

你也可以

<dubbo:protocol name="jms" p:queue="xxx" />
属性对应 URL 参数类型必填默认值
keykeystring必填服务治理路由参数键2.0.0 或更高版本
valuevaluestring必填服务治理路由参数值2.0.0 或更高版本

环境变量

支持的键是以下两个

  1. dubbo.labels,指定 URL 中配置的键值对列表,通常通过 JVM -D 或系统环境变量。

    添加以下配置

    # JVM
    -Ddubbo.labels = "tag1=value1; tag2=value2"
    # environment variables
    DUBBO_LABELS = "tag1=value1; tag2=value2"
    

    最终生成的 URL 将包含两个键 tag1 和 tag2:dubbo://xxx?tag1=value1&tag2=value2

  2. dubbo.env.keys,指定环境变量键值,Dubbo 会尝试从环境变量中加载每个键

    # JVM
    -Ddubbo.env.keys="DUBBO_TAG1, DUBBO_TAG2"
    # environment variables
    DUBBO_ENV_KEYS = "DUBBO_TAG1, DUBBO_TAG2"
    

    最终生成的 URL 将包含两个键 DUBBO_TAG1 和 DUBBO_TAG2:dubbo://xxx?DUBBO_TAG1=value1&DUBBO_TAG2=value2

其他配置

config-mode

background

某些类型的配置类实例在每个 dubbo 应用程序中只能出现一次(例如 ApplicationConfigMonitorConfigMetricsConfigSslConfigModuleConfig),而有些可以出现多次(例如 RegistryConfigProtocolConfig 等)。

如果应用程序意外扫描到多个唯一的配置类实例(例如,用户在 dubbo 应用程序中错误配置了两个 ApplicationConfig),应该使用哪种策略来处理这种情况?是直接抛出异常?是保留前者,忽略后者?是忽略前者,保留后者?还是允许某种形式的共存(例如,后者的属性覆盖前者)?

目前,dubbo 中唯一的配置类类型以及找到多个唯一配置类型实例时允许的配置模式/策略如下。

唯一的配置类类型

ApplicationConfigMonitorConfigMetricsConfigSslConfigModuleConfig

前四个属于应用程序级别,最后一个属于模块级别。

配置模式

  • strict:严格模式。直接抛出异常。
  • override:覆盖模式。忽略前者,保留后者。
  • ignore:忽略模式。忽略后者,保留前者。
  • override_all:属性覆盖模式。无论前者的属性值是否为空,都将后者的属性覆盖/设置在前者上。
  • override_if_absent:属性覆盖模式(如果不存在)。只有当前者的对应属性值为空时,才能将后者的属性覆盖/设置在前者上。

注意:后两者也会影响配置实例的属性覆盖。由于 Dubbo 具有多种配置方式,即存在多个配置来源,且配置来源也具有优先级。例如,一个 ServiceConfig 通过 xml 配置,并指定了属性 version=1.0.0。同时,我们在外部配置(配置中心)中配置了 dubbo.service.{interface}.version=2.0.0,在引入 config-mode 配置项之前,根据原有的配置来源优先级,最终实例的 version=2.0.0。但是,在引入 config-mode 配置项之后,配置优先级规则不再那么严格,即如果指定 config-mode is override_all,则为 version=2.0.0,如果 config-mode is override_if_absent,则为 version=1.0.0,如果 config-mode 为其他值,则属性设置/覆盖将遵循原有的配置优先级。

配置方式

配置的键为 dubbo.config.mode,配置的值如上所述,默认策略值为 strict。下面是一个示例配置

# JVM -D
-Ddubbo.config.mode=strict

# environment variables
DUBBO_CONFIG_MODE=strict

# External configuration (configuration center), Environment of Spring application, dubbo.properties
dubbo.config.mode=strict

上次修改时间:2023 年 7 月 20 日:更新 properties.md (e516025bed4)