dubbo 是一个分布式服务框架 是一个高性能的RPC框架 它提供了三大核心能力:面向接口的远程方法调用,智能容错和负载均衡,以及服务自动注册和发现。前端
谈到了分布式服务框架 那必然有单一服务框架接下来就谈谈服务框架的演变过程算法
当网站流量很小时 只须要一个应用 将全部的功能都部署在一个应用上架构
优势负载均衡
缺点框架
垂直应用架构分布式
有了缺点就会有改进因而 垂直应用架构就出现了 垂直应用框架将应用拆分红互不相关的应用 ide
优势性能
缺点网站
分布式服务架构spa
当垂直应用愈来愈大 应用之间的交互不可避免 将核心业务抽取出来 做为独立的服务 逐渐造成稳定的服务中心 使前端应用可以适应多变的市场 此时 用于提供业务的复用及整合的分布式服务框架(RPC)是关键。
优势
缺点
流动计算架构
当服务愈来愈多,容量的评估,小服务资源的浪费等问题逐渐显现,此时需增长一个调度中心基于访问压力实时管理集群容量,提升集群利用率。此时,用于提升机器利用率的资源调度和治理中心(SOA)[ Service Oriented Architecture]是关键。
什么叫RPC?
RPC【Remote Procedure Call】是指远程过程调用,说到远程过程调用 那就要谈到本地过程调用 本地过程当中不一样方法之间能够相互调用 可是它只适用于同一个服务中 当咱们在多个服务中想调用不一样服务中的方法这时候就须要RPC 它是一种进程间通讯方式 适用于不一样服务之间的通讯
RPC两个核心模块:通信,序列化。
1.透明化的远程方法调用,就像调用本地方法同样调用远程方法
2.支持负载均衡算法及容错机制
3.支持服务自动注册与发现
随着技术的发展 应用的发展也愈来愈快 项目的体积也愈来愈大 分布式服务框架也愈来愈常见 为了更加方便快捷的对应用进行开发、治理 因而dubbo就出现了
服务提供者(provider):暴露服务的服务提供方 服务提供者在启动的时候 就会向注册中心注册本身的服务
注册中心(Registry):注册中心返回服务提供者的地址列表给消费者 若是有变动 注册中心将基于长链接推送变动数据给消费者
服务消费者(Consumer):服务消费者在启动时 会向注册中心订阅本身所需的服务 服务消费者会从地址列表中 经过负载均衡算法 选一台提供者进行调用 若是调用失败 在选另一台
监控中心(Monitor):服务消费者和提供者,在内存中累计调用次数和调用时间,定时每分钟发送一次统计数据到监控中心
调用关系说明
服务容器负责启动,加载 运行服务提供者
服务提供者在启动时 向注册中心注册本身提供的服务
注册中心返回提供者地址列表给消费者 若是有变动 注册中心将基于长链接推送变动数据给消费者
服务消费者在启动时 向注册中心订阅本身所需的服务
服务消费者 从地址提供列表中 基于负载均衡算法 选一台提供者进行调用 若是调用失败 再选另外一台进行调用