Dubbo的XML配置

深碍√TFBOYSˉ_ 2022-02-24 01:10 293阅读 0赞

provider.xml示例

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <beans xmlns="http://www.springframework.org/schema/beans"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xmlns:dubbo="http://dubbo.apache.org/schema/dubbo"
  5. 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">
  6. <!-- 提供方应用信息,用于计算依赖关系 -->
  7. <dubbo:application name="hello-world-app" />
  8. <!-- 使用multicast广播注册中心暴露服务地址 -->
  9. <dubbo:registry address="multicast://224.5.6.7:1234" />
  10. <!-- 用dubbo协议在20880端口暴露服务 -->
  11. <dubbo:protocol name="dubbo" port="20880" />
  12. <!-- 声明需要暴露的服务接口 -->
  13. <dubbo:service interface="org.apache.dubbo.demo.DemoService" ref="demoService" />
  14. <!-- 和本地bean一样实现服务 -->
  15. <bean id="demoService" class="org.apache.dubbo.demo.provider.DemoServiceImpl" />
  16. </beans>

consumer.xml示例:

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <beans xmlns="http://www.springframework.org/schema/beans"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xmlns:dubbo="http://dubbo.apache.org/schema/dubbo"
  5. 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">
  6. <!-- 消费方应用名,用于计算依赖关系,不是匹配条件,不要与提供方一样 -->
  7. <dubbo:application name="consumer-of-helloworld-app" />
  8. <!-- 使用multicast广播注册中心暴露发现服务地址 -->
  9. <dubbo:registry address="multicast://224.5.6.7:1234" />
  10. <!-- 生成远程服务代理,可以和本地bean一样使用demoService -->
  11. <dubbo:reference id="demoService" interface="org.apache.dubbo.demo.DemoService" />
  12. </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

发表评论

表情:
评论列表 (有 0 条评论,293人围观)

还没有评论,来说两句吧...

相关阅读