- service层:provider和consumer接口留给你来实现。
- config层: 任何一个框架都需要提供配置文件,让你可以进行配置。
- proxy层:代理层,无论是consumer,还是provider,dubbo都会给你生成代理,代理之间进行网络通信。
- registry层:provider注册自己作为一个服务,consumer就可以找注册中心去寻找自己要调用的服务。
- cluster层:provider可以部署在多台机器上的,多个provider就组成来一个集群
- monitor层:consumer调用provider,调用来多少次啊?统计信息监控。
- protocol层:负责具体的provider和consumer之间调用接口的时候的网络通信。
- exchange层:信息交换。
- serialize层:数据序列化层。
- .ransport层:网络传输层,抽象mina和netty为统一接口。
工作流程
- provider向注册中心去注册。
- consumer从注册中心订阅服务,注册中心会通知consumer注册好的服务。
- consumer调用provider
- consumer和provider都异步的通知监控中心。
注册中心挂了可以继续通信吗?
可以,因为刚开始初始化的时候,消费者会将提供者的地址等信息拉取到本地缓冲,所以注册中心挂了可以继续通信。