Dubbo的工作原理
Dubbo十层架构:
- 第一层:service 层,为服务提供者和消费者来实现的
- 第二层:config 层,主要对 dubbo 进行配置的
- 第三层:proxy 层,无论是 consumer 还是 provider,dubbo 都会给你生成代理,代理之间进行网络通信
- 第四层:registry 层,复制服务的注册与发现
- 第五层:cluster 层,封装多个服务提供者的路由以及负载均衡,将多个实例组合成一个服务
- 第六层:monitor 层,对 rpc接口的调用次数和调用时间进行监控
- 第七层:protocal 层,封装 rpc 调用
- 第八层:exchange 层,封装请求响应模式,同步转异步
- 第九层:transport 层,抽象 mina 和 netty 为统一接口
- 第十层:serilize 层,数据序列化层
工作流程:
第一步,provider 向注册中心注册。
第二步,consumer 从注册中心订阅服务,注册中心会通知 consumer 注册好的服务。
第三步,consumer 调用 provider 。
第四步,consumer 和 provider 都异步通知监控中心。
注册中心宕机后仍然可以继续通信,因为刚开始初始化时,消费者会将提供者的地址等信息拉取到本地缓存,仍可以继续通信。