Dubbo是一种分布式服务框架,既然是分布式,那么可以实现软负载均衡。在webservice服务框架基础之上,该框架引入了软负载均衡。除了这个之外,还提供了两个功能Monitor监控中心和调用中心,可选功能,可以灵活配置。
Consumer服务消费者,provider服务提供者。Container服务容器。消费者想要调用服务,其一是直接调用服务,其二通过注册中心去调用服务。Invoke这条线,表明该过程是同步的过程。按照上图来说,provider的位置对于consumer来说是透明的,而且多次调用服务的位置是不确定的,这里可以做软负载。
- 0 服务提供者先启动容器中的服务
- 1 对服务提供者提供的服务进行注册
- 2 消费者在调用服务的时候,会先从注册中心,进行服务的订阅(这里,如果消费者没有订阅到自己想获得的服务,它会不断的尝试订阅。)
- 3 服务注册成功后,注册中心会给服务消费者发送该服务注册成功的类似消息
- 4 服务消费者调用服务提供者提供的服务(基于软负载均衡算法)
- 5 服务消费者和服务提供者在内存中累计调用次数和调用时间,定时每分钟异步发送一次统计数据到监控中心。
首先会初始化过程细节
1、解析服务
2、暴露服务
i. 暴露服务端口
ii. 向注册中心暴露服务、
引用服务
1、直接引用服务
2、通过注册中心发现引用服务
远程调用细节
1、服务提供者暴露服务过程
2、服务消费者调用服务过程