调用链的整体流程图
下面蓝色部分是消费端的调用过程,大致过程分为Proxy–>Filter–>Invoker–>Directory–>LoadBalance–>Filter–>Invoker–>Client
集群容错的架构图
在集群调用失败时,Dubbo 提供了多种容错方案,缺省为 failover 重试。
源码分析
dubbo-master consumer代码
public class Consumer {
public static void main(String[] args) {
ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(new String[]{
"META-INF/spring/dubbo-demo-consumer.xml"});
context.start();
DemoService demoService = (DemoService) context.getBean("demoService"); // 获取远程服务代理
String hello = demoService.sayHello("world"); // 执行远程方法
System.out.println(hello); // 显示调用结果
}
}
demoService是一个proxy代理类,执行demoService.sayHello方法,