初识Dubbo
初识Dubbo
1.随着互联网的发展,网站应用的规模不断扩大,常规的垂直应用架构已无法应对,分布式服务架构以及流动计算架构势在必行,迫切需一个治理系统确保架构有条不紊的演进。
架构演变:
1.单一应用架构
网站流量小,只需要一个应用,所有功能部署在一起,减少成本。(ORM)
2.垂直应用架构
访问量逐渐增大,单一架构已经难以满足需求,将应用拆分成互不相干的几个应用,分开部署(MVC)
3.分布式服务架构
垂直应用越来越多,应用之间交互必不可免,将核心业务抽取出来,作为独立的服务,形成稳定的服务中心,使前端应用能更快速的响应多变的市场需求。使用分布式服务框架(RPC)
4.流动计算架构
服务越来越多,容量评估小服务资源浪费等问题逐渐呈现,此时需要增加调度中心基于压力实时管理集群容量,提高集群利用率。(SOA)
Dubbo是阿里巴巴公司开源的一个高性能优秀的服务框架,使得应用可通过高性能的 RPC 实现服务的输出和输入功能,可以和 Spring框架无缝集成。是分布式架构的一个解决方案。
架构:
节点角色说明:
1.Provider 服务提供方(生产者)
2.Consumer 服务消费方(消费者)
3.Registry 服务注册于发现中心(注册中心)
4.Monitor 统计服务的调用次调和调用时间的监控中心(监控中心)
5.Container 服务运行容器
调用关系说明:
- 服务容器负责启动,加载,运行服务提供者。
- 服务提供者在启动时,向注册中心注册自己提供的服务。
- 服务消费者在启动时,向注册中心订阅自己所需的服务。
- 注册中心返回服务提供者地址列表给消费者,如果有变更,注册中心将基于长连接推送变更数据给消费者。
- 服务消费者,从提供者地址列表中,基于软负载均衡算法,选一台提供者进行调用,如果调用失败,再选另一台调用。
- 服务消费者和提供者,在内存中累计调用次数和调用时间,定时每分钟发送一次统计数据到监控中心。
Dubbo 架构具有以下几个特点,分别是连通性、健壮性、伸缩性、以及向未来架构的升级性。
Dubbo使用方式
1.注解
2.xml配置
3.属性配置
4.API配置
Dubbo注册中心
1.multicast注册中心
2.zookeeper注册中心
3.redis注册中心
4.simple注册中心