@reference注解_Dubbo配置参考手册之dubbo:reference

本文详细介绍了Dubbo服务消费者配置的各个属性,包括id、interface、version、group、timeout、retries、loadbalance等27个属性,涵盖了服务发现、性能调优和服务治理等方面。这些配置用于定义服务消费者的调用行为和服务选择策略,对于理解和优化Dubbo应用的性能至关重要。
摘要由CSDN通过智能技术生成

概述

这是服务消费者引用服务的配置标签。对应的配置类为 org.apache.dubbo.config.ReferenceConfig。dubbo:reference标签一共有27个属性(截至2.7.7版本)。

属性详情

id

服务引用bean的id,即当前dubbo:reference标签代表的服务的bean的id,其为string类型,必填属性(后续的属性说明中,没有专门指明是必填属性的,均为可选属性)。

interface

服务接口名,类型是class即接口完整类名,属于dubbo:reference标签的必填属性,其作用是用于服务发现。

version

服务版本,与服务提供者的版本一致。对应URL参数为version,类型为string。

group

服务分组,对应URL参数为group,类型为string。当一个接口有多个实现,可以用分组区分,必须和服务提供方一致。

timeout

服务方法调用超时时间,单位毫秒。long类型,对应URL的参数为timeout,缺省使用的timeout,是性能调优属性之一。

retries

远程服务调用重试次数,不包括第一次调用,不需要重试请设为0,缺省使用的retries。int类型的性能调优类属性,对应URL参数retries。

connections

对每个提供者的最大连接数,rmi、http、hessian等短连接协议表示限制连接数,dubbo等长连接协表示建立的长连接个数。int类型的性能调优类属性,URL对应的参数为connections,缺省使用的connections。

loadbalance

负载均衡策略,对应URL中的loadbalance参数,string类型,其取值范围为random,roundrobin,leastactive,分别表示随机,轮询,最少活跃调用。loadbalance是性能调优中非常重要的属性之一,缺省使用的loadbalance。

async

是否异步执行,不可靠异步,只是忽略返回值,不阻塞执行线程。boolean类型的性能调优类属性,URL中对应参数为async,缺省使用的async。

generic

是否缺省泛化接口,如果为泛化接口,将返回GenericService。属于服务治理类的属性,类型为boolean,其对应的URL参数为generic,缺省使用的generic。

check

启动时检查提供者是否存在,boolean类型。设置为true时,如果提供者即服务不存在注册中心,将报错,设置为false时,不做检查。这是一个很有用的服务治理类的属性,在出现服务循环引用时,可以设置为false解决。其对应的URL参数为check。缺省使用的check。

url

点对点直连服务提供者地址,将绕过注册中心。string类型,URL中对应的参数为url。

stub

服务接口客户端本地代理类名,用于在客户端执行本地逻辑,如本地缓存等,该本地代理类的构造函数必须允许传入远程代理对象,构造函数如:public XxxServiceLocal(XxxService xxxService)。其类型为class/boolean,URL中对应的参数为stub。

mock

服务接口调用失败Mock实现类名,该Mock类必须有一个无参构造函数,与stub的区别在于,Local总是被执行,而mock只在出现非业务异常(比如超时,网络异常等)时执行,stub在远程调用之前执行,Mock在远程调用后执行。mock是比较重要的服务治理的属性,其类型为class或boolean,缺省值为false。对应URL的参数是mock。

cache

以调用参数为key,缓存返回结果,其类型为string/boolean,取值范围lru, threadlocal, jcache等。在URL中对应的参数为cache。

validation

是否启用JSR303标准注解验证,如果启用,将对方法参数上的注解进行校验。boolean类型,在URL中对应的参数为validation。

proxy

选择动态代理实现策略,string类型的性能调优类属性,可选取值为jdk和javassist,缺省值为javassist。其在URL的参数为proxy。

client

客户端传输类型设置,如Dubbo协议的netty或mina。string类型的性能调优类属性,其在URL的参数为client。

registry

string类型,从指定注册中心注册获取服务列表,在多个注册中心时使用,值为的id属性,多个注册中心ID用逗号分隔。缺省将从所有注册中心获服务列表后合并结果。

owner

调用服务负责人,用于服务治理,请填写负责人公司邮箱前缀。string类型的属性,对应URL参数为owner。

actives

每服务消费者每服务每方法最大并发调用数。int类型,缺省值为0,对应URL参数为actives,属于性能调优类属性。

cluster

集群方式,string类型的性能调优类属性,可选取值为failover、failfast、failsafe、failback、forking,缺省值为failover。

filter

服务过滤器链,服务消费方远程调用过程拦截器名称,多个名称用逗号分隔。string类型性能调优属性,缺省值为default。其对应的URL参数为reference.filter。

listener

服务消费方引用服务监听器名称,多个名称用逗号分隔。string类型的性能调优类属性,其对应的URL参数为invoker.listener,缺省值为default。

layer

服务调用者所在的分层。如:biz、dao、intl:web、china:acton。string类型的服务治理类属性,其在URL上对应的参数为layer。

init

是否在afterPropertiesSet()时饥饿初始化引用,否则等到有人注入或引用该实例时再初始化。boolean类型的性能调优类属性,缺省值为false,其在URL上对应的参数为init。

protocol

string类型,只调用指定协议的服务提供方,其它协议忽略。其在URL上对应的参数为protocol。

总结

细心的小伙伴可能已经发现,其实有不少属性和dubbo:service中的属性很类似,其含义也基本相同。确实如此,只不过dubbo:service用于服务提供者端,而dubbo:reference用于服务消费者端。

#java开发工程师# #架构师# #诗和远方#

f1b65c08249c03f218dfa7c88b3f2ebd.png

学习工作之余,一起看看诗和远方:顺德伦教进士牌坊

  • 3
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值