Dubbo的整体结构设计和分层

五个角色

1.注册中心Registry:服务注册与发现
2.服务提供者Provider:暴露服务
3.服务消费者Consumet:调用远程服务
4.监控中心Monitor:统计服务的调用次数和调用时间
5.容器Container:服务允许容器

调用流程

1.container容器负责启动,加载,运行provider。
2.provider在启动时,向registry中心注册自己提供的服务。
3.consumer在启动时,向registry中心订阅自己所需要的服务。
4.registry返回服务提供者列表给consumet,如果有变更,registery将基于长连接推送变更数据给consumer。
5.consumer调用provider服务,基于负载均衡算法进行调用。
6.consumer调用provider的统计,基于短连接定时每分钟一次统计到monitor

分层

1.接口服务层Service:面向开发者,业务代码,接口,实现等
2.配置层Config:对外配置接口,以ServiceConfig和ReferenceConfig为中心。
3.服务代理层Proxy:对生产者和消费者,dubbo都会产生一个代理类封装调用细节,业务层对远程调用无感。
4.服务注册层Registry:封装服务地址的注册和发现,以服务URL为中心。
5.路由层Cluster:封装多个提供者的路由和负载均衡,并桥接注册中心。
6.监控层Monitor:RPC调用次数和调用时间监控。
7.远程调用层Protocal:封装RPC调用。
8.信息交换层Exchange:封装请求响应模式,同步转异步。
9.网络传输层Transport:抽象mina和netty为统一接口,统一网络传输接口。
10.数据序列层Serialize:数据传输的序列化和反序列化。

你可能感兴趣的:(分布式面试题,dubbo,java,开发语言)