dubbu知识点总结
集群容错
集群容错的意思是,如果调用失败的时候,服务调用方该如何处理重试策略。
dubbo提供的集群容错模式共有5种,分别如下
- failover
- failfast
- failsafe
- failback
- forking
其中failover为默认策略
下面分别介绍一下5种策略的理解
- failover 失败后,尝试调用其他服务器,这通常用于读操作,可通过参数retries来设置重试次数
- failfast 快速失败,只发起一次操作,失败了就立刻报错,通常用于非幂等接口调用
- failsafe 失败安全,出现异常时,直接忽略掉(有点小残忍)
- failback 失败时,会自动记录,定时重发,通常用于消息通知
- forking 并行调用多个服务器,只要有一个返回了,就返回成功,注意,这个不能用于非幂等接口
服务降级
服务降级的目的是保证核心业务的可用和稳定,当某些非核心业务出现错误且可能影响到核心业务的时候,调用方可以返回一个兜底的数据,而不再调用服务提供方。dubbo使用mock来返回兜底数据。
配置的优先级
dubbo的配置可以在服务提供方,也可在服务调用方,如果2者都配了,它的优先顺序是
调用方 优先于 提供方
dubbo的配置可以在类级别,也可以在方法级别,如果2者都配置了,它的优先顺序是
方法级别 优先于 类级别
SPI
SPI的本质是面向接口编程,官方定义好接口规范后,不同的实现者实现自己各自的具体实现逻辑,使用者通过引入不同的Java包从而可以在不修改客户端代码的情况下使用不同的实现类。
dubbo SPI的实现比Java自带的SPI实现多了一些特性
- dubbo的SPI支持依赖注入
参考网站
https://dubbo.gitbooks.io/dubbo-user-book/content/