dubbo源码学习(一)

dubbo 源码学习(一)-集群容错架构
dubbo使用两年有余,但仅仅停留在浅层的使用,了解基础的机制而已,也尝试过阅读源码,却一直没有坚持下来。其实内心是害阅读源码的,此次希望能跟着大佬们发现源码中的“黄金屋”,哈哈,共勉!
转载:https://www.jianshu.com/p/8e007012367e
在这里插入图片描述
跟着这个执行时序图,根据三个关键字Directory、Router、LoadBalance再结合平时dubbo知识就大概知道主要做了那些事:1、在Directory中找出本次集群中的全部invokers
2、在Router中,将上一步的全部invokers挑选出能正常执行的invokers
3、在LoadBalance中,将上一步的能正常的执行invokers中,根据配置的负载均衡策略,挑选出需要执行的invoker

另外提到Dubbo 提供了多种容错方案,缺省为 failover 重试
failover:失效转移,即当A无法为客户服务时,系统能够自动地切换,使B能够及时地顶上继续为客户提供服务,且客户感觉不到这个为他提供服务的对象已经更换
Failfast Cluster:快速失败,只发起一次调用,失败立即报错。通常用于非幂等性的写操作,比如新增记录。
1、Failsafe Cluster:失败安全,出现异常时,直接忽略。通常用于写入审计日志等操作。
2、Failback Cluster:失败自动恢复,后台记录失败请求,定时重发。通常用于消息通知操作。
3、Forking Cluster:并行调用多个服务器,只要一个成功即返回。通常用于实时性要求较高的读操作,但需要浪费更多服务资源。可通过 forks=“2” 来设置最大并行数。
4、Broadcast Cluster:广播调用所有提供者,逐个调用,任意一台报错则报错 。通常用于通知所有提供者更新缓存或日志等本地资源信息。

猜你喜欢

转载自blog.csdn.net/MrBxiong/article/details/88417105