其实Dubbo的官方文档非常强大,里面的各种各样的标签都会介绍到,但是最新版的官方文档好像找不那么多详细的使用了。在此,我推荐一篇博客,里面列举的也蛮全面的,可以参考: dubbo配置参考手册_dubbo使用手册_Ithao2的博客-CSDN博客
1. Dubbo 常用功能标签
<dubbo:service/> 服务配置,用于暴露一个服务,定义服务的元信息,一个服务可以用多个协议暴露,一个服务也可以注册到多个注册中心。
<dubbo:reference/> 引用配置,用于创建一个远程服务代理,一个引用可以指向多个注册中心。
<dubbo:protocol/> 协议配置,用于配置提供服务的协议信息,协议由提供方指定,消费方被动接受。
<dubbo:application/> 应用配置,用于配置当前应用信息,不管该应用是提供者还是消费者。
<dubbo:registry/> 注册中心配置,用于配置连接注册中心相关信息。
<dubbo:module/> 模块配置,用于配置当前模块信息,可选。
<dubbo:monitor/> 监控中心配置,用于配置连接监控中心相关信息,可选。
<dubbo:provider/> 提供方的缺省值,当ProtocolConfig和ServiceConfig某属性没有配置时,采用此缺省值,可选。
<dubbo:consumer/> 消费方缺省配置,当ReferenceConfig某属性没有配置时,采用此缺省值,可选。
<dubbo:method/> 方法配置,用于ServiceConfig和ReferenceConfig指定方法级的配置信息。
<dubbo:argument/> 用于指定方法参数配置。
XML文件的形式看起来更直观,下面以XML文件的形式阐述Dubbo的高级特性:
2. 启动时检查
Dubbo启动的时候会检查依赖的服务是否可用,而使用到Dubbo,基本都是分布式、集群环境。如果依赖服务找不到,他会阻止Spring初始化工作的完成,导致服务无法启动。而使用懒加载的Bean,也会抛异常,请关闭检查。默认 check=true.
一般在消费端进行配置。 可用配置到具体的要引用的Bean上,也可以进行全部配置。
3. 超时连接/重连
Dubbo消费端在发送一个请求以后,需要有一个临界值来判断服务是否正常,总不傻傻的一直等着。此时超时是否需要重连就出来了。
4. 集群容错
当消费端某次调用失败是一些环境因素造成的,比如网络抖动。Dubbo还给予容错补救的机会。(forks=“2” 来设置最大并行数)
failover :当出现失败, 重试其它服务器。 retries=“2” 来设置重试次数(不含第一次)。(幂等性操作使用, 如读操作)
<dubbo:consumer cluster="failover” retries="2" forks="2" />
failfast :快速失败, 只发起一次调用, 失败立即报错。(非幂等性操作, 如写操作)
failsafe :出现异常时, 直接忽略。(无关紧要的旁支操作, 如打日志)
failback :后台记录失败请求, 定时重发 (后续专业处理)
forking :并行调用多个服务器, 只要一个成功即返回
消费端、服务端、全局、具体的开放接口都可以配置:
5. 负载均衡
在集群负载均衡时,dubbo提供了多种策略,默认为random随机调用,可以自行扩展负载均衡策略。
random : 按权重随机选取,根据服务方设置weight值随机选取
roundrobin:轮循
leastactive :最少活跃数(正在处理的数)。慢的机器、收到请求少的机器
消费端、服务端、全局、具体的开放接口都可以配置:
6. 结果缓存
7. 服务分组
8. 多版本
9. 只订阅\只注册
默认情况下,我们是订阅与注册兼备的,不需要设置。
只订阅:自己的模块代码还没写好,但是依赖的模块已经写好。我们只需订阅即可。是否向此注册中心注册服务,如果设为false,将只订阅,不注册.
只注册: 比如开发环境为了省机器, 没有部署某个服务, 如短信/邮件功能。 但整个
系统又必须要调用它。 此时我们可以借用一下测试环境的此服务(不能影响
测试环境原本的服务闭环) 。 将测试环境的短信/邮件服务也向开发环境注
册一份, 只注册(其依赖的服务必须还是测试环境的)
10. 异步调用
消费方、服务方、全局、接口、方法都可以设置
11. 事件通知
上面列举的,是我们在使用dubbo的时候出现的最高频的。还有很多,就不一一介绍了,可以查API仔细研究。