Dubbo回顾
- dubbo概念
- RPC与SOA
- 单一应用架构:
- 垂直应用架构
- 分布式服务架构
- 流动计算架构
- 微服务架构(扩展)
- Dubbo架构
- 节点角色
- 调用关系说明
dubbo概念
Dubbo是一个分布式服务框架,致力于提供一个高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案。
RPC与SOA
单一应用架构:
- 当网站流量很小时,只需要一个应用,将所有的功能都部署在一起,以减少部署节点和成本。
- 此时,用于简化增删改查工作量的数据访问框架(ORM)是关键。
垂直应用架构
- 当访问量主键增加,单一应用增加机器带来的加速度越来越小,将应用拆分成互不相干的几个应用,以提升效率。
- 此时,用于加速前端页面开发的Web框架(MVC)是关键。这就是分离前后台逻辑的MVC架构。
分布式服务架构
- 当垂直应用越来越多,应用之间交互不可避免,将核心业务抽取出来,作为独立的服务,实现前后台逻辑分离。
- 此时,用于提高业务复合及整合的分布式服务框架(RPC)是关键。
流动计算架构
- 随着业务的发展,当服务数量越来越多,服务生命周期管控和运行台的治理成为瓶颈。
- 此时,用于提高机器利用率的资源调度和治理中心(SOA)是关键。
微服务架构(扩展)
- 随着敏捷开发、持续支付、DevOps 理论的发展和实践,以及基于 Docker 等轻量级容器 (LXC) 部署应用和服务的成熟,微服务架构开始流行,逐渐成为应用架构的未来演进方向。
- 通过服务的原子化拆分,以及微服务的独立打包、部署和升级,小团队敏捷交付,应用的交付周期将缩短,运营成本也将大幅下降。
Dubbo架构
节点角色
- Provider:暴露服务的服务提供方。
- Consumer:调用远程服务的服务消费方。
- Registry:服务注册与发现的注册中心。
- Monitor:统计服务的调用次数和调用时间的监控中心。
- Container:服务运行容器。
调用关系说明
- 服务容器负责启动,加载,运行服务提供者。
- 服务提供者在启动时,向注册中心注册自己提供的服务。
- 服务消费者在启动时,想注册中心订阅自己需要的服务。
- 注册中心返回服务提供者地址列表给消费者,如果有变更,注册中心将基于长连接推送变更数据给消费者。
- 服务消费者,从提供者地址列表中,基于软负载均衡算法,选一台提供者进行调用,如果调用失败,再选另一台调用。
- 服务消费者和提供者,在内存中累计调用次数和调用时间,定时每分钟发送一次统计数据到监控中心。