在之前的讲解中,我们说明了springboot和dubbo的整合使用,但对很多同学来说,可能还并不是很清楚dubbo内部的执行流程,如果要弄清楚dubbo的运行流程的话就需要跟踪源码进行分析,这是一个耗时耗力的过程,但如果搞清楚了这其中的原理,则对于我们理解dubbo这个框架有很好的帮助,
首先我们贴上dubbo的官方两张图,
第一张图是dubbo的基本的模块图,也叫逻辑结构抽象图,
我们解释以下这个架构图:
Consumer服务消费者,Provider服务提供者。
Container服务容器。消费当然是invoke提供者了,invoke这条实线按照图上的说明当然同步的意思了。但是在实际调用过程中,Provider的位置对于Consumer来说是透明的,上一次调用服务的位置(IP地址)和下一次调用服务的位置,是不确定的。这个地方就需要使用注册中心来实现软负载,通常我们使用zookeeper作为注册中心,这也是官方推荐的;
Register
服务提供者先启动start,然后注册register服务。消费订阅subscribe服务,如果没有订阅到自己想获得的服务,它会不断的尝试订阅。新的服务注册到注册中心以后,注册中心会将这些服务通过notify到消费者。
Monitor
这是一个监控,图中虚线表明Consumer 和Provider通过异步