Dubbo的XML配置
provider.xml示例
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:dubbo="http://dubbo.apache.org/schema/dubbo"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.3.xsd http://dubbo.apache.org/schema/dubbo http://dubbo.apache.org/schema/dubbo/dubbo.xsd">
<!-- 提供方应用信息,用于计算依赖关系 -->
<dubbo:application name="hello-world-app" />
<!-- 使用multicast广播注册中心暴露服务地址 -->
<dubbo:registry address="multicast://224.5.6.7:1234" />
<!-- 用dubbo协议在20880端口暴露服务 -->
<dubbo:protocol name="dubbo" port="20880" />
<!-- 声明需要暴露的服务接口 -->
<dubbo:service interface="org.apache.dubbo.demo.DemoService" ref="demoService" />
<!-- 和本地bean一样实现服务 -->
<bean id="demoService" class="org.apache.dubbo.demo.provider.DemoServiceImpl" />
</beans>
consumer.xml示例:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:dubbo="http://dubbo.apache.org/schema/dubbo"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.3.xsd http://dubbo.apache.org/schema/dubbo http://dubbo.apache.org/schema/dubbo/dubbo.xsd">
<!-- 消费方应用名,用于计算依赖关系,不是匹配条件,不要与提供方一样 -->
<dubbo:application name="consumer-of-helloworld-app" />
<!-- 使用multicast广播注册中心暴露发现服务地址 -->
<dubbo:registry address="multicast://224.5.6.7:1234" />
<!-- 生成远程服务代理,可以和本地bean一样使用demoService -->
<dubbo:reference id="demoService" interface="org.apache.dubbo.demo.DemoService" />
</beans>
配置标签
标签 | 用途 | 解释 |
---|---|---|
dubbo:service/ | 服务配置 | 用于暴露一个服务,定义服务的元信息,一个服务可以用多个协议暴露,一个服务也可以注册到多个注册中心 |
dubbo:reference/ | 引用配置 | 用于创建一个远程服务代理,一个引用可以指向多个注册中心 |
dubbo:protocol/ | 协议配置 | 用于配置提供服务的协议信息,协议由提供方指定,消费方被动接受 |
dubbo:application/ | 应用配置 | 用于配置当前应用信息,不管该应用是提供者还是消费者 |
dubbo:module/ | 模块配置 | 用于配置当前模块信息,可选 |
dubbo:registry/ | 注册中心配置 | 用于配置连接注册中心相关信息 |
dubbo:monitor/ | 监控中心配置 | 用于配置连接监控中心相关信息,可选 |
dubbo:provider/ | 提供方配置 | 当 ProtocolConfig 和 ServiceConfig 某属性没有配置时,采用此缺省值,可选 |
dubbo:consumer/ | 消费方配置 | 当 ReferenceConfig 某属性没有配置时,采用此缺省值,可选 |
dubbo:method/ | 方法配置 | 用于 ServiceConfig 和 ReferenceConfig 指定方法级的配置信息 |
dubbo:argument/ | 参数配置 | 用于指定方法参数配置 |
schema 配置参考手册
这里以 XML Config 为准,列举所有配置项
注意:只有 group,interface,version是服务的匹配条件,三者决定是不是同一个服务,其它配置项均为调优和治理参数。
- 服务发现:表示该配置项用于服务的注册与发现,目的是让消费方找到提供方。
- 服务治理:表示该配置项用于治理服务间的关系,或为开发测试提供便利条件。
- 性能调优:表示该配置项用于调优性能,不同的选项对性能会产生影响。
- 所有配置最终都将转换为 URL表示,并由服务提供方生成,经注册中心传递给消费方。
- URL 格式:protocol://username:password@host:port/path?key=value&key=value
dubbo:service
服务提供者暴露服务配置。对应的配置类:org.apache.dubbo.config.ServiceConfig
属性 | 描述 |
---|---|
interface | 服务接口名(必填) |
ref | 服务对象实现引用(必填) |
version | 服务版本,建议使用两位数字版本,如:1.0,通常在接口不兼容时版本号才需要升级 |
group | 服务分组,当一个接口有多个实现,可以用分组区分 |
path | 延迟注册服务时间(毫秒),设为-1时,表示延迟到Spring容器初始化完成时暴露服务 |
timeout | 远程服务调用超时时间(毫秒) |
retries | 远程服务调用重试次数,不包括第一次调用,不需要重试请设为0 |
connections | 对每个提供者的最大连接数,rmi、http、hessian等短连接协议表示限制连接数,dubbo等长连接协表示建立的长连接个数 |
loadbalance | 负载均衡策略,可选值:random,roundrobin,leastactive,分别表示:随机,轮询,最少活跃调用 |
async | 是否缺省异步执行,不可靠异步,只是忽略返回值,不阻塞执行线程 |
registry | 向指定注册中心注册,在多个注册中心时使用,值为dubbo:registry的id属性,多个注册中心ID用逗号分隔,如果不想将该服务注册到任何registry,可将值设为N/A |
provider | 指定provider,值为dubbo:provider的id属性 |
deprecated | 服务是否过时,如果设为true,消费方引用时将打印服务过时警告error日志 |
dynamic | 服务是否动态注册,如果设为false,注册后将显示后disable状态,需人工启用,并且服务提供者停止时,也不会自动取消册,需人工禁用 |
accesslog | 设为true,将向logger中输出访问日志,也可填写访问日志文件路径,直接把访问日志输出到指定文件 |
owner | 服务负责人,用于服务治理,请填写负责人公司邮箱前缀 |
weight | 服务权重 |
executes | 服务提供者每服务每方法最大可并行执行请求数 |
proxy | 生成动态代理方式,可选:jdk/javassist |
cluster | 集群方式,可选:failover/failfast/failsafe/failback/forking |
filter | 服务提供方远程调用过程拦截器名称,多个名称用逗号分隔 |
listener | 服务提供方导出服务监听器名称,多个名称用逗号分隔 |
protocol | 使用指定的协议暴露服务,在多协议时使用,值为dubbo:protocol的id属性,多个协议ID用逗号分隔 |
layer | 服务提供者所在的分层。如:biz、dao、intl:web、china:acton。 |
register | 该协议的服务是否注册到注册中心 |
dubbo:reference
服务消费者引用服务配置。对应的配置类: org.apache.dubbo.config.ReferenceConfig
属性 | 描述 |
---|---|
id | 服务引用BeanId(必填) |
interface | 服务接口名(必填) |
version | 服务版本,建议使用两位数字版本,如:1.0,通常在接口不兼容时版本号才需要升级 |
group | 服务分组,当一个接口有多个实现,可以用分组区分 |
timeout | 远程服务调用超时时间(毫秒) |
retries | 远程服务调用重试次数,不包括第一次调用,不需要重试请设为0 |
connections | 对每个提供者的最大连接数,rmi、http、hessian等短连接协议表示限制连接数,dubbo等长连接协表示建立的长连接个数 |
loadbalance | 负载均衡策略,可选值:random,roundrobin,leastactive,分别表示:随机,轮询,最少活跃调用 |
async | 是否缺省异步执行,不可靠异步,只是忽略返回值,不阻塞执行线程 |
registry | 向指定注册中心注册,在多个注册中心时使用,值为dubbo:registry的id属性,多个注册中心ID用逗号分隔,如果不想将该服务注册到任何registry,可将值设为N/A |
owner | 服务负责人,用于服务治理,请填写负责人公司邮箱前缀 |
actives | 每服务消费者每服务每方法最大并发调用数 |
cluster | 集群方式,可选:failover/failfast/failsafe/failback/forking |
filter | 服务提供方远程调用过程拦截器名称,多个名称用逗号分隔 |
listener | 服务提供方导出服务监听器名称,多个名称用逗号分隔 |
protocol | 使用指定的协议暴露服务,在多协议时使用,值为dubbo:protocol的id属性,多个协议ID用逗号分隔 |
layer | 服务提供者所在的分层。如:biz、dao、intl:web、china:acton。 |
dubbo:protocol
服务提供者协议配置。对应的配置类: org.apache.dubbo.config.ProtocolConfig。同时,如果需要支持多协议,可以声明多个 dubbo:protocol 标签,并在 dubbo:service 中通过 protocol 属性指定使用的协议。
属性 | 描述 |
---|---|
id | 协议BeanId,可以在<dubbo:service protocol=””>中引用此ID,如果ID不填,缺省和name属性值一样,重复则在name后加序号 |
name | 协议名称(必填) |
port | dubbo协议缺省端口为20880,rmi协议缺省端口为1099,http和hessian协议缺省端口为80 |
port | 如果没有配置port,则自动采用默认端口,如果配置为-1,则会分配一个没有被占用的端口 |
path | 提供者上下文路径,为服务path的前缀 |
register | 该协议的服务是否注册到注册中心 |
dubbo:registry
注册中心配置。对应的配置类: org.apache.dubbo.config.RegistryConfig。同时如果有多个不同的注册中心,可以声明多个 dubbo:registry 标签,并在 dubbo:service 或 dubbo:reference 的 registry 属性指定使用的注册中心。
属性 | 描述 |
---|---|
id | 注册中心引用BeanId,可以在<dubbo:service registry=””>或<dubbo:reference registry=””>中引用此ID |
address host:port | 注册中心服务器地址,如果地址没有端口缺省为9090,同一集群内的多个地址用逗号分隔,如:ip:port,ip:port,不同集群的注册中心,请配置多个dubbo:registry标签 |
protocol | 注册中心地址协议,支持dubbo, http, local三种协议,分别表示:dubbo地址、http地址、本地注册中心 |
port | 注册中心缺省端口,当address没有带端口时使用此端口做为缺省值 |
username | 登录注册中心用户名,如果注册中心不需要验证可不填 |
password | 登录注册中心密码,如果注册中心不需要验证可不填 |
register | 默认true,是否向此注册中心注册服务,如果设为false,将只订阅,不注册 |
subscribe | 默认true,是否向此注册中心订阅服务,如果设为false,将只注册,不订阅 |
dynamic | 默认true,服务是否动态注册,如果设为false,注册后将显示为disable状态,需人工启用,并且服务提供者停止时,也不会自动取消注册,需人工禁用 |
group | 服务注册分组,跨组的服务不会相互影响,也无法相互调用,适用于环境隔离 |
dubbo:monitor
监控中心配置。对应的配置类: org.apache.dubbo.config.MonitorConfig
属性 | 描述 |
---|---|
protocol | 监控中心协议,如果为protocol=“registry”,表示从注册中心发现监控中心地址,否则直连监控中心 |
address | 直连监控中心服务器地址,address=“10.20.130.230:12080” |
dubbo:application
应用信息配置。对应的配置类:org.apache.dubbo.config.ApplicationConfig
属性 | 描述 |
---|---|
name(必填) | 当前应用名称,用于注册中心计算应用间依赖关系,注意:消费者和提供者应用名不要一样,此参数不是匹配条件,你当前项目叫什么名字就填什么,和提供者消费者角色无关,比如:kylin应用调用了morgan应用的服务,则kylin项目配成kylin,morgan项目配成morgan,可能kylin也提供其它服务给别人使用,但kylin项目永远配成kylin,这样注册中心将显示kylin依赖于morgan |
version | 当前应用的版本 |
owner | 应用负责人,用于服务治理,请填写负责人公司邮箱前缀 |
logger | 日志输出方式,可选:slf4j,jcl,log4j,log4j2,jdk |
还没有评论,来说两句吧...