初识Dubbo-设计原理
接触背景:2017-11-31入职新公司之前,一直都是在中小型企业,大多都是使用单机模式,最多就是使用nginx做一层反向代理和负载均衡。入职新公司后,业务线比较广,公司主要采用分布式微服务架构。自身本来就对这方面比较欠缺,正好利用此次机会深入学习一下。
Dubbo介绍:Dubbo是一个分布式服务框架,提供高性能和透明(调用远程方法犹如调用本地方法一样)的远程RPC调用方案,以及SOA服务治理方案。
Dubbo特点:按照分层的方式来架构,使各层之间解耦合(做到最大程度的松耦合)。下面是总体架构图:
Dubbo框架一共分为10个层,图中左边淡蓝色为服务消费者使用的接口,右边淡绿色为服务提供者使用的接口,位于中轴线上的是双方都可使用的接口。下面看一下10各层每层的作用。
1.服务接口层(Service):主要是跟实际业务相关,是专门提供给想接入Dubbo的分布式服务项目实现业务逻辑的接口层,服务的提供方和消费方根据业务来设计接口和实现接口。
2.配置层(Config):对外提供配置接口,主要以ServiceConfig和ReferenceConfig为中心,可以直接生成配置类(New对象),或者跟Spring结合(通过spring解析来生成配置类)。
3.服务代理层(Proxy):服务接口透明代理,生成服务的客户端Stub和服务端Skeleton,以ServiceProxy为中心,扩展接口为ProxyFactory。
4.服务注册层(Registey):主要是封装服务注册和发现,提供给消费者使用。以URL(Dubbo自己实现的URL)为总线扩展,扩展的接口有:Registry,RegistryFactory