一、架构图解
1、架构图

2、角色
Provider: 暴露服务的服务提供方。1
Consumer: 调用远程服务的服务消费方。1
Registry: 服务注册与发现的注册中心。1
Monitor: 统计服务的调用次调和调用时间的监控中心。1
Container: 服务运行容器。1
3、调用关系
0 服务容器负责启动,加载,运行服务提供者。1
1 服务提供者在启动时,向注册中心注册自己提供的服务。1
2 服务消费者在启动时,向注册中心订阅自己所需的服务。1
3 注册中心返回服务提供者地址列表给消费者,如果有变更,注册中心将基于长连接推送变更数据给消费者。1
4 服务消费者,从提供者地址列表中,基于软负载均衡算法,选一台提供者进行调用,如果调用失败,再选另一台调用。1
5 服务消费者和提供者,在内存中累计调用次数和调用时间,定时每分钟发送一次统计数据到监控中心1

二、重点解析
这里我们可能最不明白的还是生产这和消费者。那么服务的提供方就是生产者,服务的调用方就是消费者。
1、服务提供者暴露一个服务的详细过程

具体服务到Invoker的转化 Invoker转换到Exporter
2、服务消费者消费一个服务的详细过程

首先ReferenceConfig类的init方法调用Protocol的refer方法生成Invoker实例(如上图中的红色部分),这是服务消费的关键。接下来把Invoker转换为客户端需要的接口(如:HelloWorld)。
3、详解Invoker
由于Invoker是Dubbo领域模型中非常重要的一个概念,很多设计思路都是向它靠拢。这就使得Invoker渗透在整个实现代码里,对于刚开始接触Dubbo的人,确实容易给搞混了。
![]()
总结:
通过此次学习,我们知道了Dubbo架构的工作原理,知道了服务如何提供并消费,但是什么是注册,为什么要注册我们还不太明白,后边我们在介绍zookeeper的时候会一一讲解。
出处:http://m.blog.youkuaiyun.com/article/details?id=50738153
本文深入解析Dubbo微服务架构,阐述服务提供者、消费者、注册中心和监控中心的角色及调用流程,通过Invoker概念理解Dubbo核心设计。
722

被折叠的 条评论
为什么被折叠?



