Dubbo在XML中各配置标签属性含义
前言: Dubbo是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案。其核心部分包含: 1. 远程通讯: 提供对多种基于长连接的NIO框架抽象封装,包括多种线程模型,序列化,以及“请求-响应”模式的信息交换方式。 2. 集群容错: 提供基于接口方法的透明远程过程调用,包括多协议支持,以及软负载均衡,失
前言:
Dubbo是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案。
其核心部分包含:
1. 远程通讯: 提供对多种基于长连接的NIO框架抽象封装,包括多种线程模型,序列化,以及“请求-响应”模式的信息交换方式。
2. 集群容错: 提供基于接口方法的透明远程过程调用,包括多协议支持,以及软负载均衡,失败容错,地址路由,动态配置等集群支持。
3. 自动发现: 基于注册中心目录服务,使服务消费方能动态的查找服务提供方,使地址透明,使服务提供方可以平滑增加或减少机器。
其主要特性包含:
(1) 连通性:
-
注册中心负责服务地址的注册与查找,相当于目录服务,服务提供者和消费者只在启动时与注册中心交互,注册中心不转发请求,压力较小
-
监控中心负责统计各服务调用次数,调用时间等,统计先在内存汇总后每分钟一次发送到监控中心服务器,并以报表展示
-
服务提供者向注册中心注册其提供的服务,并汇报调用时间到监控中心,此时间不包含网络开销
-
服务消费者向注册中心获取服务提供者地址列表,并根据负载算法直接调用提供者,同时汇报调用时间到监控中心,此时间包含网络开销
-
注册中心,服务提供者,服务消费者三者之间均为长连接,监控中心除外
-
注册中心通过长连接感知服务提供者的存在,服务提供者宕机,注册中心将立即推送事件通知消费者
-
注册中心和监控中心全部宕机,不影响已运行的提供者和消费者,消费者在本地缓存了提供者列表
-
注册中心和监控中心都是可选的,服务消费者可以直连服务提供者
(2) 健状性:
-
监控中心宕掉不影响使用,只是丢失部分采样数据
-
数据库宕掉后,注册中心仍能通过缓存提供服务列表查询,但不能注册新服务
-
注册中心对等集群,任意一台宕掉后,将自动切换到另一台
-
注册中心全部宕掉后,服务提供者和服务消费者仍能通过本地缓存通讯
-
服务提供者无状态,任意一台宕掉后,不影响使用
-
服务提供者全部宕掉后,服务消费者应用将无法使用,并无限次重连等待服务提供者恢复
(3) 伸缩性:
-
注册中心为对等集群,可动态增加机器部署实例,所有客户端将自动发现新的注册中心
-
服务提供者无状态,可动态增加机器部署实例,注册中心将推送新的服务提供者信息给消费者
想要使用一个服务框架,首先得对它的基础内容做一定的了解,下面我们来了解一下dubbo在XML配置文件中各标签以及配置属性的含义
<dubbo:application/> 应用配置信息,不管是提供者还是消费者。XML解析所对应的bean为com.alibaba.dubbo.config.ApplicationConfig
可配置的属性有:
|
标签 |
属性名称 |
对应URL参数 |
类型 |
在此标签中是否必填 |
缺省值 |
此标签具有什么作用 |
对应的属性名称配置描述 |
兼 容 性( 供 参 考) |
|
name |
application |
string |
必填 |
|
服务治理 |
当前应用名称,用于注册中心计算应用间依赖关系,注意:消费者和提供者应用名不要一样,此参数不是匹配条件,你当前项目叫什么名字就填什么,和提供者消费者角色无关,比如:kylin应用调用了morgan应用的服务,则kylin项目配成kylin,morgan项目配成morgan,可能kylin也提供其它服务给别人使用,但kylin项目永远配成kylin,这样注册中心将显示kylin依赖于morgan |
1.0.16以上版本 |
|
|
organization |
organization |
string |
可选 |
|
服务治理 |
组织名称(BU或部门),用于注册中心区分服务来源,此配置项建议不要使用autoconfig,直接写死在配置中,比如china,intl,itu,crm,asc,dw,aliexpress等 |
2.0.0以上版本 |
|
|
organization |
organization |
string |
可选 |
|
服务治理 |
用于服务分层对应的架构。如,intl、china。不同的架构使用不同的分层。 |
2.0.7以上版本 |
|
|
environment |
environment |
string |
可选 |
|
服务治理 |
应用环境,如:develop/test/product,不同环境使用不同的缺省值,以及作为只用于开发测试功能的限制条件 |
2.0.0以上版本 |
|
|
owner |
owner |
string |
可选 |
|
服务治理 |
应用负责人,用于服务治理,请填写负责人公司邮箱前缀 |
2.0.5以上版本 |
<dubbo:registry/>注册中心配置信息,可以配置多个,递增配置条目即可。XML解析对应的bean为com.alibaba.dubbo.config.RegistryConfig
可配置的属性有:
|
标签 |
属性名称 |
对应URL参数 |
类型 |
在此标签中是否必填 |
缺 省 值 |
此标签具有什么作用 |
对应的属性名称配置描述 |
兼 容 性( 供 参 考) |
|
id |
|
string |
可选 |
|
配置关联 |
注册中心引用BeanId,可以在<dubbo:service registry="">或<dubbo:reference registry="">中引用此ID |
1.0.16以上版本 |
|
|
address |
string |
必填 |
|
服务发现 |
注册中心服务器地址,如果地址没有端口缺省为9090,同一集群内的多个地址用逗号分隔,如:ip:port,ip:port,不同集群的注册中心,请配置多个<dubbo:registry>标签 |
1.0.16以上版本 |
||
|
protocol |
<protocol> |
string |
可选 |
dubbo |
服务发现 |
注同中心地址协议,支持dubbo, http, local三种协议,分别表示,dubbo地址,http地址,本地注册中心 |
2.0.0以上版本 |
|
|
port |
<port> |
int |
可选 |
9090 |
服务发现 |
注册中心缺省端口,当address没有带端口时使用此端口做为缺省值 |
2.0.0以上版本 |
|
|
username |
<username> |
string |
可选 |
|
服务治理 |
登录注册中心用户名,如果注册中心不需要验证可不填 |
2.0.0以上版本 |
|
|
password |
<password> |
string |
可选 |
|
服务治理 |
登录注册中心密码,如果注册中心不需要验证可不填 |
2.0.0以上版本 |
|
|
transport |
registry. transporter |
string |
可选 |
netty |
性能调优 |
网络传输方式,可选mina,netty |
2.0.0以上版本 |
|
|
timeout |
registry.timeout |
int |
可选 |
5000 |
性能调优 |
注册中心请求超时时间(毫秒) |
2.0.0以上版本 |
|
|
file |
registry.file |
string |
可选 |
|
服务治理 |
使用文件缓存注册中心地址列表及服务提供者列表,应用重启时将基于此文件恢复,注意:两个注册中心不能使用同一文件存储 |
2.0.0以上版本 |
|
|
wait |
registry.wait |
int |
可选 |
0 |
性能调优 |
停止时等待通知完成时间(毫秒) |
2.0.0以上版本 |
|
|
check |
check |
boolean |
可选 |
true |
服务治理 |
注册中心不存在时,是否报错 |
2.0.0以上版本 |
|
|
register |
register |
boolean |
可选 |
true |
服务治理 |
是否向此注册中心注册服务,如果设为false,将只订阅,不注册 |
2.0.5以上版本 |
|
|
subscribe |
subscribe |
boolean |
可选 |
true |
服务治理 |
是否向此注册中心订阅服务,如果设为false,将只注册,不订阅 |
2.0.5以上版本 |
|
|
dynamic |
dynamic |
boolean |
可选 |
true |
服务治理 |
服务是否动态注册,如果设为false,注册后将显示后disable状态,需人工启用,并且服务提供者停止时,也不会自动取消册,需人工禁用。 |
2.0.5以上版本 |
<dubbo:protocol/>服务提供者所暴露的协议配置信息,可配置多个此标签,需要在<dubbo:service>中通过protocol属性指定使用的协议。 XML解析对应的bean为com.alibaba.dubbo.config.ProtocolConfig
可配置的属性有:
|
标签 |
属性 |
对应URL参数 |
类型 |
是否必填 |
缺省值 |
作用 |
描述 |
兼容性 |
|
id |
|
string |
可选 |
dubbo |
配置关联 |
协议BeanId, 可以在<dubbo:service proivder=""> 中引用此ID |
2.0.5以上版本 |
|
|
name |
<protocol> |
string |
必填 |
dubbo |
性能调优 |
协议名称 |
2.0.5以上版本 |
|
|
port |
<port> |
int |
可选 |
dubbo协议缺省端口为20880, rmi协议缺省端口为1099, http和hessian协议缺省端口为80 |
服务发现 |
服务端口 |
2.0.5以上版本 |
|
|
host |
<host> |
string |
可选 |
自动查找本机IP |
服务发现 |
-服务主机名, 多网卡选择 或指定VIP及 域名时使用, 为空则自动 查找本机IP, -建议不要配置, 让Dubbo 自动获取本机IP |
2.0.5以上版本 |
|
|
threadpool |
threadpool |
string |
可选 |
fixed |
性能调优 |
线程池类型, 可选: fixed/cached |
2.0.5以上版本 |
|
|
threads |
threads |
int |
可选 |
100 |
性能调优 |
服务线程池 大小(固定大小) |
2.0.5以上版本 |
|
|
iothreads |
threads |
int |
可选 |
cpu个数+1 |
性能调优 |
io线程池大小 (固定大小) |
2.0.5以上版本 |
|
|
accepts |
accepts |
int |
可选 |
0 |
性能调优 |
服务提供方最 大可接受连接数 |
2.0.5以上版本 |
|
|
payload |
payload |
int |
可选 |
88388608(=8M) |
性能调优 |
请求及响应数 据包大小限制, 单位:字节 |
2.0.5以上版本 |
|
|
codec |
codec |
string |
可选 |
dubbo |
性能调优 |
协议编码方式 |
2.0.5以上版本 |
|
|
serialization |
serialization |
string |
可选 |
dubbo协议缺省为hessian2,rmi协议缺省为java,http协议缺省为json |
性能调优 |
协议序列化方式, 当协议 支持多种序 列化方式时 使用,比如: dubbo协议的dubbo, hessian2, java, compactedjava,以及http协议的json等 |
2.0.5以上版本 |
|
|
accesslog |
accesslog |
string/ boolean |
可选 |
|
服务治理 |
设为true,将向logger中输出 访问日志,也可填写访问日志文件路径,直接把访问日志输出到指定文件 |
2.0.5以上版本 |
|
|
path |
<path> |
string |
可选 |
|
服务发现 |
提供者上下文路径,为服务path的前缀 |
2.0.5以上版本 |
|
|
server |
server |
string |
可选 |
dubbo协议缺省为netty,http协议缺省为servlet |
性能调优 |
协议的服务器端实现类型, 比如: dubbo协议的mina,netty等, http协议的jetty,servlet等 |
2.0.5以上版本 |
|
|
client |
client |
string |
可选 |
dubbo协议缺省为netty |
性能调优 |
协议的客户端实现类型,比如: dubbo协议的mina,netty等 |
2.0.5以上版本 |
|
|
queues |
queues |
int |
可选 |
0 |
性能调优 |
线程池队列大小,当线程池满时,排队等待执行的队列大小,建议不要设置,当线程程池时应立即失败,重试其它服务提供机器,而不是排队,除非有特殊需求。 |
2.0.5以上版本 |
|
|
charset |
charset |
string |
可选 |
UTF-8 |
性能调优 |
序列化编码 |
2.0.5以上版本 |
|
|
buffer |
buffer |
int |
可选 |
8192 |
性能调优 |
网络读写缓冲区大小 |
2.0.5以上版本 |
|
|
telnet |
telnet |
string |
可选 |
|
服务治理 |
所支持的telnet 命令, 多个命令用逗号分隔 |
2.0.5以上版本 |
|
|
register |
register |
boolean |
可选 |
true |
服务治理 |
该协议的服务是否 注册到注册中心 |
2.0.8以上版本 |
<dubbo:service/>服务提供者暴露服务配置,XML解析对应的bean为:com.alibaba.dubbo.config.ServiceConfig
可配置的属性有:
|
标签 |
属性 |
对应URL参数 |
类型 |
是否必填 |
缺省值 |
作用 |
描述 |
兼容性 |
|
interface |
|
class |
必填 |
|
服务发现 |
服务接口名 |
1.0.0以上版本 |
|
|
ref |
|
object |
必填 |
|
服务发现 |
服务对象 实现引用 |
1.0.0以上版本 |
|
|
version |
version |
string |
可选 |
0.0.0 |
服务发现 |
服务版本, 建议使用 两位数字 版本, 如:1.0, 通常在 接口不兼容 时版本 号才需要升级 |
1.0.0以上版本 |
|
|
group |
group |
string |
可选 |
|
服务发现 |
服务分组, 当一个接 口有多个 实现,可 以用分组 区分 |
1.0.7以上版本 |
|
|
path |
<path> |
string |
可选 |
缺省为 接口名 |
服务发现 |
服务路径 (注意: 1.0不支持 自定义路径, 总是使用接 口名,如果 有1.0调2.0, 配置服务路 径可能不兼容) |
1.0.12以上版本 |
|
|
delay |
delay |
int |
可选 |
0 |
性能调优 |
延迟注册服 务时间(毫秒) 设为-1时, 表示延迟到 Spring容器 初始化完成 时暴露服务 |
1.0.14以上版本 |
|
|
timeout |
timeout |
int |
可选 |
5000 |
性能调优 |
远程服务调 用超时时间 (毫秒) |
2.0.0以上版本 |
|
|
retries |
retries |
int |
可选 |
2 |
性能调优 |
远程服务调 用重试次数, 不包括第一 次调用,不 需要重试请 设为0 |
2.0.0以上版本 |
|
|
connections |
connections |
boolean |
可选 |
100 |
性能调优 |
对每个提供 者的最大连 接数,rmi、 http、 hessian 等短连接协 议支持此配置,dubbo 协议长连接 不支持此配置 |
2.0.0以上版本 |
|
|
loadbalance |
loadbalance |
string |
可选 |
random |
性能调优 |
负载均衡策略, 可选值: random, roundrobin, leastactive, 分别表示: 随机,轮循, 最少活跃调用 |
2.0.0以上版本 |
|
|
async |
async |
boolean |
可选 |
false |
性能调优 |
是否缺省异步 执行,不可靠 异步,只是忽 略返回值,不 阻塞执行线程 |
2.0.0以上版本 |
|
|
local |
local |
class/boolean |
可选 |
false |
服务治理 |
设为true,表示 使用缺省代理 类名,即: 接口名 + Local 后缀,服务接 口客户端本地 代理类名, 用于在客户端 执行本地逻辑, 如本地缓存等, 该本地代理类 的构造函数必 须允许传入远 程代理对象, 构造函数如: public XxxServiceLocal XxxService xxxService) |
2.0.0以上版本 |
|
|
mock |
mock |
class/boolean |
可选 |
false |
服务治理 |
设为true,表示 使用缺省Mock 类名,即: 接口名 + Mock 后缀,服务接 口调用失败 Mock实现类, 该Mock类必 须有一个无参 构造函数,与 Local的区别 在于,Local 总是被执行, 而Mock只在 出现非业务 异常(比如超 时,网络异常 等)时执行, Local在远程 调用之前执行,Mock在 远程调用后 执行。 |
2.0.0以上版本 |
|
|
token |
token |
string/boolean |
可选 |
false |
服务治理 |
令牌验证, 为空表示不 开启,如果 为true,表 示随机生成 动态令牌, 否则使用静 态令牌,令 牌的作用是 防止消费者 绕过注册中 心直接访问. 保证注册中 心的授权功 能有效,如 果使用点对
关闭令牌功 能 |
2.0.0以上版本 |
|
|
registry |
|
string |
可选 |
缺省向 所有registry 注册 |
配置关联 |
向指定注册 中心注册, 在多个注册 中心时使用, 值为 的id属性,多个注 册中心ID用逗号分 隔,如果不想将该 服务注册到任 何registry,可 将值设为N/A |
2.0.0以上版本 |
|
|
provider |
|
string |
可选 |
缺使用 第一个provider 配置 |
配置关联 |
指定provider, 值为 的id属性 |
2.0.0以上版本 |
|
|
deprecated |
deprecated |
boolean |
可选 |
false |
服务治理 |
服务是否过时, 如果设为true, 消费方引用时将 打印服务过时 警告error日志 |
2.0.5以上版本 |
|
|
dynamic |
dynamic |
boolean |
可选 |
true |
服务治理 |
服务是否动态注 册,如果设为false, 注册后将显示 后disable状态, 需人工启用,并且 服务提供者停止 时,也不会自动 取消册, 需人工禁用。 |
2.0.5以上版本 |
|
|
accesslog |
accesslog |
string/boolean |
可选 |
false |
服务治理 |
设为true,将 向logger中输 出访问日志,也 可填写访问日 志文件路径,直 接把访问日志输 出到指定文件 |
2.0.5以上版本 |
|
|
owner |
owner |
string |
可选 |
|
服务治理 |
服务负责人, 用于服务治理, 请填写负责人 公司邮箱前缀 |
2.0.5以上版本 |
|
|
document |
document |
string |
可选 |
|
服务治理 |
服务文档URL |
2.0.5以上版本 |
|
|
weight |
weight |
int |
可选 |
|
性能调优 |
服务权重 |
2.0.5以上版本 |
|
|
executes |
executes |
int |
可选 |
0 |
性能调优 |
服务提供者每 服务每方法最 大可并行执行 请求数 |
2.0.5以上版本 |
|
|
actives |
actives |
int |
可选 |
0 |
性能调优 |
每服务消费者 每服务每方法 最大并发调用数 |
2.0.5以上版本 |
|
|
proxy |
proxy |
string |
可选 |
javassist |
性能调优 |
生成动态代理 方式,可选:jdk/javassist |
2.0.5以上版本 |
|
|
cluster |
cluster |
string |
可选 |
failover |
性能调优 |
集群方式,可选: failover/ failfast/ failsafe/ failback/ forking |
2.0.5以上版本 |
|
|
filter |
service.filter |
string |
可选 |
default |
性能调优 |
服务提供方远 程调用过程拦 截器名称,多 个名称用逗号分隔 |
2.0.5以上版本 |
|
|
listener |
exporter.listener |
string |
可选 |
default |
性能调优 |
服务提供方导 出服务监听器 名称,多个名 称用逗号分隔 |
|
|
|
protocol |
|
string |
可选 |
|
配置关联 |
使用指定的协 议暴露服务, 在多协议时使用, 值为 的id属性,多个 协议ID用逗号分隔 |
2.0.5以上版本 |
|
|
layer |
layer |
string |
可选 |
|
服务治理 |
服务提供者所 在的分层。如: |
2.0.7以上版本 |
|
|
register |
register |
boolean |
可选 |
true |
服务治理 |
该协议的服务 是否注册到 注册中心 |
2.0.8以上版本 |
<dubbo:provider/>服务提供者缺省值配置,该标签为<dubbo:service>和<dubbo:protocol>标签的缺省值设置.
XML解析对应的bean为:com.alibaba.dubbo.config.ProviderConfig
可配置的属性有:
|
标签 |
属性 |
对应URL参数 |
类型 |
是否必填 |
缺省值 |
作用 |
描述 |
兼容性 |
|
id |
|
string |
可选 |
dubbo |
配置关联 |
协议BeanId, 可以在 proivder="">中 引用此ID |
1.0.16以上版本 |
|
|
protocol |
<protocol> |
string |
可选 |
dubbo |
性能调优 |
协议名称 |
1.0.16以上版本 |
|
|
host |
<host> |
string |
可选 |
自动查 找本机IP |
服务发现 |
服务主机名,多 网卡选择或指定 VIP及域名时使用, 为空则自动查找本 机IP,建议不要 配置,让Dubbo 自动获取本机IP |
1.0.16以上版本 |
|
|
threads |
threads |
int |
可选 |
100 |
性能调优 |
服务线程池大小 (固定大小) |
1.0.16以上版本 |
|
|
payload |
payload |
int |
可选 |
88388608 (=8M) |
性能调优 |
请求及响应数据 包大小限制, 单位:字节 |
2.0.0以上版本 |
|
|
path |
<path> |
string |
可选 |
|
服务发现 |
提供者上下文 路径,为服务 path的前缀 |
2.0.0以上版本 |
|
|
server |
server |
string |
可选 |
dubbo协 议缺省为netty,http 协议缺省 为servlet |
性能调优 |
协议的服务器 端实现类型, 比如:dubbo 协议的mina,netty 等,http协议的 jetty,servlet等 |
2.0.0以上版本 |
|
|
client |
client |
string |
可选 |
dubbo协 议缺省为 netty |
性能调优 |
协议的客户端 实现类型,比如: dubbo协议的 mina,netty等 |
2.0.0以上版本 |
|
|
codec |
codec |
string |
可选 |
dubbo |
性能调优 |
协议编码方式 |
2.0.0以上版本 |
|
|
serialization |
serialization |
string |
可选 |
dubbo 协议缺 省为hessian2, rmi协议 缺省为java, http协议 缺省为 json |
性能调优 |
协议序列化方 式,当协议支 持多种序列化 方式时使用,比 如:dubbo协议的 dubbo,hessian2, java, compactedjava, 以及http协议的 json,xml等 |
2.0.5以上版本 |
|
|
default |
|
boolean |
可选 |
false |
配置关联 |
是否为缺省协议, 用于多协议 |
1.0.16以上版本 |
|
|
filter |
service. filter |
string |
可选 |
|
性能调优 |
服务提供方远程 调用过程拦截器 名称,多个名称 用逗号分隔 |
2.0.5以上版本 |
|
|
listener |
exporter. listener |
string |
可选 |
|
性能调优 |
服务提供方导出 服务监听器名称, 多个名称用逗号 分隔 |
2.0.5以上版本 |
|
|
threadpool |
threadpool |
string |
可选 |
fixed |
性能调优 |
线程池类型, 可选: fixed/cached |
2.0.5以上版本 |
|
|
accepts |
accepts |
int |
可选 |
0 |
性能调优 |
服务提供者最大 可接受连接数 |
2.0.5以上版本 |
|
|
version |
version |
string |
可选 |
0.0.0 |
服务发现 |
服务版本,建议使 用两位数字版本, 如:1.0,通常在 接口不兼容时版 本号才需要升级 |
2.0.5以上版本 |
|
|
group |
group |
string |
可选 |
|
服务发现 |
服务分组,当一个 接口有多个实现, 可以用分组区分 |
2.0.5以上版本 |
|
|
delay |
delay |
int |
可选 |
0 |
性能调优 |
延迟注册服务时 间(毫秒)- ,设 为-1时,表示延 迟到Spring容器 初始化完成时暴 露服务 |
2.0.5以上版本 |
|
|
timeout |
default. timeout |
int |
可选 |
5000 |
性能调优 |
远程服务调用超 时时间(毫秒) |
2.0.5以上版本 |
|
|
retries |
default. retries |
int |
可选 |
2 |
性能调优 |
远程服务调用重 试次数,不包括 第一次调用,不需 要重试请设为0 |
2.0.5以上版本 |
|
|
connections |
default. connections |
int |
可选 |
0 |
性能调优 |
每服务消费者每 服务使用连接数 |
2.0.5以上版本 |
|
|
loadbalance |
default. loadbalance |
string |
可选 |
random |
性能调优 |
负载均衡策略, 可选:random, roundrobin, leastactive, 分别表示: 随机,轮循, 最少活跃调用 |
2.0.5以上版本 |
|
|
async |
default. async |
boolean |
可选 |
false |
性能调优 |
是否缺省异步 执行,不可靠 异步,只是忽略 返回值,不阻塞 执行线程 |
2.0.5以上版本 |
|
|
local |
local |
boolean |
可选 |
false |
服务治理 |
设为true,表示 使用缺省代理 类名,即: 接口名 + Local后缀。 |
2.0.5以上版本 |
|
|
mock |
mock |
boolean |
可选 |
false |
服务治理 |
设为true,表示使 用缺省Mock类名, 即:接口名 + Mock 后缀。 |
2.0.5以上版本 |
|
|
token |
token |
boolean |
可选 |
false |
服务治理 |
令牌验证,为空表 示不开启,如果为 true,表示随机生 成动态令牌 |
2.0.5以上版本 |
|
|
registry |
registry |
string |
可选 |
缺省向 所有 registry 注册 |
配置关联 |
向指定注册中心 注册,在多个注 册中心时使用, 值为 的id属性,多个注 册中心ID用逗号分 隔,如果不想将该 服务注册到任何 registry,可将值 设为N/A |
2.0.5以上版本 |
|
|
dynamic |
dynamic |
boolean |
可选 |
true |
服务治理 |
服务是否动态注册, 如果设为false,注 册后将显示后 disable状态,需 人工启用,并且服 务提供者停止时, 也不会自动取消 册,需人工禁用。 |
2.0.5以上版本 |
|
|
accesslog |
accesslog |
string/boolean |
可选 |
false |
服务治理 |
设为true,将向 logger中输出访 问日志,也可填 写访问日志文件 路径,直接把访 问日志输出到指 定文件 |
2.0.5以上版本 |
|
|
owner |
owner |
string |
可选 |
|
服务治理 |
服务负责人,用 于服务治理,请 填写负责人公 司邮箱前缀 |
2.0.5以上版本 |
|
|
document |
document |
string |
可选 |
|
服务治理 |
服务文档URL |
2.0.5以上版本 |
|
|
weight |
weight |
int |
可选 |
|
性能调优 |
服务权重 |
2.0.5以上版本 |
|
|
executes |
executes |
int |
可选 |
0 |
性能调优 |
服务提供者每 服务每方法最 大可并行执行 请求数 |
2.0.5以上版本 |
|
|
actives |
default. actives |
int |
可选 |
0 |
性能调优 |
每服务消费者 每服务每方法 最大并发调用数 |
2.0.5以上版本 |
|
|
proxy |
proxy |
string |
可选 |
javassist |
性能调优 |
生成动态代理 方式,可选: jdk/javassist |
2.0.5以上版本 |
|
|
cluster |
default. cluster |
string |
可选 |
failover |
性能调优 |
集群方式,可选: failover/failfast/ failsafe/failback/ forking |
2.0.5以上版本 |
|
|
deprecated |
deprecated |
boolean |
可选 |
false |
服务治理 |
服务是否过时, 如果设为true, 消费方引用时将 打印服务过时警 告error日志 |
2.0.5以上版本 |
|
|
queues |
queues |
int |
可选 |
0 |
性能调优 |
线程池队列大小, 当线程池满时, 排队等待执行的 队列大小,建议 不要设置,当线 程程池时应立即 失败,重试其它 服务提供机器, 而不是排队,除非 有特殊需求。 |
2.0.5以上版本 |
|
|
charset |
charset |
string |
可选 |
UTF-8 |
性能调优 |
序列化编码 |
2.0.5以上版本 |
|
|
buffer |
buffer |
int |
可选 |
8192 |
性能调优 |
网络读写缓 冲区大小 |
2.0.5以上版本 |
|
|
iothreads |
iothreads |
int |
可选 |
CPU + 1 |
性能调优 |
IO线程池,接收 网络读写中断, 以及序列化和 反序列化,不 处理业务,业务 线程池参见 threads配置, 此线程池和CPU 相关,不建议配置。 |
2.0.5以上版本 |
|
|
telnet |
telnet |
string |
可选 |
|
服务治理 |
所支持的telnet 命令,多个命令 用逗号分隔 |
2.0.5以上版本 |
|
|
layer |
layer |
string |
可选 |
|
服务治理 |
服务提供者所 在的分层。 如:biz、dao、 |
2.0.7以上版本 |
<dubbo:reference/>服务消费者引用服务配置,XML解析对应的bean为:com.alibaba.dubbo.config.ReferenceConfig可配置的属性有:
|
标签 |
属性 |
对应URL参数 |
类型 |
是否必填 |
缺省值 |
作用 |
描述 |
兼容性 |
|
id |
|
string |
必填 |
|
配置关联 |
服务引用 BeanId |
1.0.0以 上版本 |
|
|
interface |
|
class |
必填 |
|
服务发现 |
服务接口名 |
1.0.0以 上版本 |
|
|
version |
version |
string |
可选 |
|
服务发现 |
服务版本, 与服务提供 者的版本 一致 |
1.0.0以 上版本 |
|
|
group |
group |
string |
可选 |
|
服务发现 |
服务分组, 当一个接 口有多个 实现,可 以用分 组区分, 必需和 服务提供 方一致 |
1.0.7以 上版本 |
|
|
timeout |
timeout |
long |
可选 |
缺省使用 的timeout |
性能调优 |
服务方法 调用超时 时间(毫秒) |
1.0.5以 上版本 |
|
|
retries |
retries |
int |
可选 |
缺省使用 的retries |
性能调优 |
远程服务调 用重试次 数,不包括 第一次调用, 不需要重试 请设为0 |
2.0.0以 上版本 |
|
|
connections |
connections |
int |
可选 |
缺省使用 的connections |
性能调优 |
对每个提供 者的最大连 接数,rmi、 http、hessian 等短连接协议 支持此配置, dubbo协议长 连接不支持 此配置 |
2.0.0以 上版本 |
|
|
loadbalance |
loadbalance |
string |
可选 |
缺省使用 的loadbalance |
性能调优 |
负载均衡策 略,可选值: random, roundrobin, leastactive, 分别表示: 随机,轮循, 最少活跃调用 |
2.0.0以 上版本 |
|
|
async |
async |
boolean |
可选 |
缺省使用 的async |
性能调优 |
是否异步执 行,不可靠 异步,只是 忽略返回值 ,不阻塞执 行线程 |
2.0.0以 上版本 |
|
|
generic |
generic |
boolean |
可选 |
缺省使用 的generic |
服务治理 |
是否缺省泛 化接口,如 果为泛化接 口,将返回 GenericService |
2.0.0以 上版本 |
|
|
check |
check |
boolean |
可选 |
缺省使用 的check |
服务治理 |
启动时检查 提供者是否 存在,true 报错,false 忽略 |
2.0.0以 上版本 |
|
|
url |
<url> |
string |
可选 |
|
服务治理 |
点对点直连 服务提供者 地址,将绕 过注册中心 |
1.0.6以 上版本 |
|
|
local |
local |
class |
可选 |
|
服务治理 |
服务接口客 户端本地代 理类名,用 于在客户端 执行本地逻 辑,如本地 缓存等,该本 地代理类的构 造函数必须允 许传入远程代 理对象,构造 函数如: public XxxServiceLocal (XxxService xxxService) |
2.0.0以 上版本 |
|
|
mock |
mock |
class |
可选 |
|
服务治理 |
服务接口调用 失败Mock实 现类名,该 Mock类必须 有一个无参构 造函数,与 Local的区别 在于,Local 总是被执行, 而Mock只在 出现非业务异 常(比如超时, 网络异常等) 时执行,Local 在远程调用之 前执行,Mock 在远程调用 后执行。 |
Dubbo 1.0.13 及其以 上版本 支持 |
|
|
proxy |
proxy |
boolean |
可选 |
javassist |
性能调优 |
选择动态代 理实现策略 ,可选: javassist, jdk |
2.0.2以 上版本 |
|
|
client |
client |
string |
可选 |
|
性能调优 |
客户端传输 类型设置, 如Dubbo 协议的netty 或mina。 |
Dubbo 2.0.0以上版本支持 |
|
|
registry |
|
string |
可选 |
缺省将从所 有注册中 心获服务 列表后合 并结果 |
配置关联 |
从指定注册 中心注册获 取服务列表 ,在多个注 册中心时使 用,值为 的id属性,多 个注册中心ID 用逗号分隔 |
2.0.0以上版本 |
|
|
owner |
owner |
string |
可选 |
|
服务治理 |
调用服务负 责人,用于 服务治理, 请填写负责 人公司邮箱 前缀 |
2.0.5以上版本 |
|
|
actives |
actives |
int |
可选 |
0 |
性能调优 |
每服务消费 者每服务每 方法最大并 发调用数 |
2.0.5以上版本 |
|
|
proxy |
proxy |
string |
可选 |
javassist |
性能调优 |
生成动态代 理方式, 可选: jdk/javassist |
2.0.5以上版本 |
|
|
cluster |
cluster |
string |
可选 |
failover |
性能调优 |
集群方式, 可选: failover/ failfast/ failsafe/ failback/ forking |
2.0.5以上版本 |
|
|
filter |
reference.filter |
string |
可选 |
default |
性能调优 |
服务消费 方远程调用 过程拦截器 名称,多个 名称用逗号 分隔 |
2.0.5以上版本 |
|
|
listener |
invoker.listener |
string |
可选 |
default |
性能调优 |
服务消费方 引用服务监 听器名称, 多个名称用 逗号分隔 |
2.0.5以上版本 |
|
|
layer |
layer |
string |
可选 |
|
服务治理 |
服务调用者 所在的分层。 如:biz、 |
2.0.7以上版本 |
<dubbo:monitor/>监控中心配置信息,此为可选标签。XML解析对应的bean为com.alibaba.dubbo.config.MonitorConfig可配置的属性有:
| 标签 | 属性名称 | 对应 URL 参数 | 类型 | 是否必填 | 缺省值 | 在此标签中什么作用 | 描述 | 兼容 性 |
| <dubbo:monitor> | address | <url> | string | 可选 | N/A | 服务 治理 | 监控中心服务器地址, 格式:ip:port,(1) 如配置为 address="10.20.130.230:12080", 则为使用logstat监控 (2)如未添加该配置, 或者address="N/A", 则会 去加载comsat.xml, 如果找 到,就使用comsat监控;如果 没找到,就不做监控 | 1.0.16 以上 版本 |
<dubbo:monitor> | protocol | protocol | string | 可选 | N/A | 服务 治理 | 监控中心协议,如果为 protocol="registry", 表示从注册中心发现 监控中心地址,否则直连监控中心 | 1.0.16 以上 版本 |
<dubbo:monitor> | username | username | string | 可选 | N/A | 服务 治理 | 登录监控中心用户名, 如果监控中心不需要 验证可不填 | 1.0.16 以上 版本 |
<dubbo:monitor> | password | password | string | 可选 | N/A | 服务 治理 | 登录监控中心密码, 如果监控中心不需要验 证可不填 | 1.0.16 以上 版本 |
<dubbo:monitor> | group | group | string | 可选 | N/A | 服务 治理 | 所属资源组 | 1.0.16 以上 版本 |
<dubbo:monitor> | version | version | string | 可选 | N/A | 服务 治理 | 版本 | 1.0.16 以上 版本 |
<dubbo:consumer/>服务消费者缺省值配置,该标签为<dubbo:reference>标签的缺省值设置。 XML解析对应的bean为:com.alibaba.dubbo.config.ConsumerConfig 可配置的属性有:
|
标签 |
属性 |
对应URL参数 |
类型 |
是否必填 |
缺省值 |
作用 |
描述 |
兼容性 |
|
timeout |
default. timeout |
int |
可选 |
5000 |
性能调优 |
远程服务调用 超时时间(毫秒) |
1.0.16以上版本 |
|
|
retries |
default. retries |
int |
可选 |
2 |
性能调优 |
远程服务调用 重试次数,不 包括第一次调 用,不需要重 试请设为0 |
1.0.16以上版本 |
|
|
loadbalance |
default. loadbalance |
string |
可选 |
random |
性能调优 |
负载均衡策略, 可选值: random, roundrobin, leastactive, 分别表示: 随机,轮循, 最少活跃调用 |
1.0.16以上版本 |
|
|
async |
default. async |
boolean |
可选 |
false |
性能调优 |
是否缺省异步 执行,不可 靠异步,只是 忽略返回值, 不阻塞执行线程 |
2.0.0以上版本 |
|
|
connections |
default. connections |
int |
可选 |
100 |
性能调优 |
每个服务对每 个提供者的最 大连接数,rmi、 http、hessian 等短连接协议 支持此配置, dubbo协议长 连接不支持此 配置 |
1.0.16以上版本 |
|
|
generic |
generic |
boolean |
可选 |
false |
服务治理 |
是否缺省泛化 接口,如果为 泛化接口,将 返回 GenericService |
2.0.0以上版本 |
|
|
check |
check |
boolean |
可选 |
true |
服务治理 |
启动时检查提 供者是否存 在,true报 错,false忽略 |
1.0.16以上版本 |
|
|
proxy |
proxy |
string |
可选 |
javassist |
性能调优 |
生成动态代 理方式, 可选: jdk/javassist |
2.0.5以上版本 |
|
|
owner |
owner |
string |
可选 |
|
服务治理 |
调用服务负 责人,用于 服务治理, 请填写负责 人公司邮箱 前缀 |
2.0.5以上版本 |
|
|
actives |
default. actives |
int |
可选 |
0 |
性能调优 |
每服务消费者 每服务每方 法最大并发 调用数 |
2.0.5以上版本 |
|
|
cluster |
default. cluster |
string |
可选 |
failover |
性能调优 |
集群方式,可 选:failover/ failfast/failsafe /failback/forking |
2.0.5以上版本 |
|
|
filter |
reference. filter |
string |
可选 |
|
性能调优 |
服务消费方 远程调用过程 拦截器名称, 多个名称用逗 号分隔 |
2.0.5以上版本 |
|
|
listener |
invoker. listener |
string |
可选 |
|
性能调优 |
服务消费方引 用服务监听器 名称,多个名 称用逗号分隔 |
2.0.5以上版本 |
|
|
registry |
|
string |
可选 |
缺省向所 有registry注册 |
配置关联 |
向指定注册中 心注册,在多个 注册中心时使 用,值为 的id属性,多个 注册中心ID用 逗号分隔,如 果不想将该服务 注册到任何 registry,可将 值设为N/A |
2.0.5以上版本 |
|
|
layer |
layer |
string |
可选 |
|
服务治理 |
服务调用者所 在的分层。 如:biz、dao、 |
2.0.7以上版本 |
<dubbo:parameter/>子标签,解析为:java.util.Map,该标签为<dubbo:protocol>或<dubbo:service>或<dubbo:provider>
或<dubbo:reference>或<dubbo:consumer>的子标签,用于配置自定义参数,该配置项将作为扩展点设置自定义参数使用。
|
标签 |
属性 |
对应URL参数 |
类型 |
是否必填 |
缺省值 |
作用 |
描述 |
兼容性 |
|
key |
key |
string |
必填 |
|
服务治理 |
路由参数键 |
2.0.0以上版本 |
|
|
value |
value |
string |
必填 |
|
服务治理 |
路由参数值 |
2.0.0以上版本 |
举例说明如下:
|
|
<dubbo:method/>子标签,定义方法级配置,该标签为<dubbo:service>或<dubbo:reference>的子标签,用于控制到方法级。
XML解析对应bean为:com.alibaba.dubbo.config.MethodConfig
可配置属性有:
|
标签 |
属性 |
对应URL参数 |
类型 |
是否必填 |
缺省值 |
作用 |
描述 |
兼容性 |
|
name |
|
string |
必填 |
|
标识 |
方法名 |
1.0.8以上版本 |
|
|
timeout |
<metodName>. timeout |
int |
可选 |
缺省为的 timeout |
性能调优 |
方法调用超 时时间(毫秒) |
1.0.8以上版本 |
|
|
retries |
<metodName>. retries |
int |
可选 |
缺省为 的retries |
性能调优 |
远程服务调 用重试次数 ,不包括第 一次调用, 不需要重试 请设为0 |
2.0.0以上版本 |
|
|
loadbalance |
<metodName>. loadbalance |
string |
可选 |
缺省为的loadbalance |
性能调优 |
负载均衡策 略, 可选值: random ,roundrobin, leastactive, 分别表示: 随机,轮循, 最少活跃调用 |
2.0.0以上版本 |
|
|
async |
<metodName>. async |
boolean |
可选 |
缺省为<dubbo: reference>的async |
性能调优 |
是否异步执 行,不可靠 异步,只是 忽略返回值 ,不阻塞 执行线程 |
1.0.9以上版本 |
|
|
sent |
<methodName>. sent |
boolean |
可选 |
true |
性能调优 |
异步调用 时,标记 sent=true 时,表示 网络已发 出数据 |
2.0.6以上版本 |
|
|
actives |
<metodName>. actives |
int |
可选 |
0 |
性能调优 |
每服务消费 者最大并 发调用限制 |
2.0.5以上版本 |
|
|
executes |
<metodName>. executes |
int |
可选 |
0 |
性能调优 |
每服务每方 法最大使用 线程数限制, 此属性只在 作为 子标签时有效 |
2.0.5以上版本 |
|
|
deprecated |
<methodName>. deprecated |
boolean |
可选 |
false |
服务治理 |
服务方法是否过 时,此属性只在 作为 子标签时有效 |
2.0.5以上版本 |
|
|
sticky |
<methodName>. sticky |
boolean |
可选 |
false |
服务治理 |
设置true 该接口 上的所有方法 使用同一个 provider.如果需 要更复杂的规则, 请使用用路由 |
2.0.6以上版本 |
|
|
return |
<methodName>. return |
boolean |
可选 |
true |
性能调优 |
方法调用是否需 要返回值,async 设置为true时才 生效,如果设置 为true,则返回 future,或回调 onreturn等方法 ,如果设置为 false,则请求 发送成功后 直接返回Null |
2.0.6以上版本 |
|
|
oninvoke |
attribute属性, 不在URL中体现 |
String |
可选 |
|
性能调优 |
方法执行前 拦截 |
2.0.6以上版本 |
|
|
onreturn |
attribute属性, 不在URL中体现 |
String |
可选 |
|
性能调优 |
方法执行返回 后拦截 |
2.0.6以上版本 |
|
|
onthrow |
attribute属性, 不在URL中体现 |
String |
可选 |
|
性能调优 |
方法执行有异 常拦截 |
2.0.6以上版本 |
举例说明如下:
|
<dubbo:referenceinterface="com.xxx.XxxService"> <dubbo:method name="methodName" timeout="3000" retries="2"/> |
<dubbo:argument/>子标签,该标签为<dubbo:method>的子标签,用于方法参数的特征描述。
XML解析对应bean为:com.alibaba.dubbo.rpc.config.ArgumentConfig
可配置的属性有:
|
标签 |
属性 |
对应URL参数 |
类型 |
是否必填 |
缺省值 |
作用 |
描述 |
兼容性 |
|
index |
|
int |
必填 |
|
标识 |
方法名 |
2.0.6以上版本 |
|
|
type |
|
String |
与index二选一 |
|
标识 |
通过参数类型查找 参数的index |
2.0.6以上版本 |
|
|
callback |
<metodName><index>.retries |
boolean |
可选 |
|
服务治理 |
参数是否为callback 接口,如果为 callback,服务 提供方将生成反 向代理,可以从 服务提供方反向 调用消费方, 通常用于事件推送. |
2.0.6以上版本 |
举例说明如下:
<dubbo:method name="methodName" timeout="3000" retries="2">
<dubbo:argument index="0"callback="true"/>
<dubbo:annotation>使用注解配置dubbo标签,需要和spring的注解扫描器搭配使用
可配置属性有:
|
标签 |
属性 |
对应URL参数 |
类型 |
是否必填 |
缺省值 |
作用 |
描述 |
兼容性 |
|
id |
key |
string |
必填 |
|
初始化ID |
|
2.0.0以 上版本 |
|
|
package |
value |
string |
必填 |
|
服务初始化 |
需要扫描的包 ,此包 中的接口或 实现类 采用了dubbo 的注解 |
2.0.0以 上版本 |
举例说明如下:
package com.zht.service.impl;
import org.springframework.stereotype.Component;
import com.alibaba.dubbo.config.annotation.Service;
import com.zht.service.RegistryService;
@Component //使用的是spring的注解
@Service //使用的是dubbo的注解
public class RegistryServiceImpl2 implements RegistryService {
@Override
public String hello(String name) {
// TODO Auto-generated method stub
return "hello dubbo annotation";
}
@Override
public String hello2(String name) {
// TODO Auto-generated method stub
return "hello dubbo annotation2";
}
}
PS:以上这些内容就是我们在XML中配置dubbo需要使用到的标签,可能有些地方理解有错误或者有遗漏的地方,欢迎给我留言。。。
更多推荐



所有评论(0)