分布式系统架构解决方案——Dubbo

dubbo概述

什么是分布式系统

  • 《分布式系统原理与范型》定义:
  1. “分布式系统是若干独立计算机的集合,这些计算机对于用户来说就像单个相关系统”
  2. 分布式系统(distributed system)是建立在网络之上的软件系统。
  3. 简单来说:多个(不同职责)人共同来完成一件事!
  4. 任何一台服务器都无法满足淘宝的双十一的数据吞吐量,一定是很多台服务器公共来完成 的。

歇后语:“三个臭皮匠赛过诸葛亮”,就是分布式系统的真实写照

单一应用架构

  • 当网站流量很小时,只需要一个应用,将所有的功能部署到一起(所有业务都放在一个tomcat 里),从而减少部署节点和成本;
  • 此时,用于简化 增删改查 工作量的数据访问框架 (ORM)是关键;
  • 例如:某个超市的收银系统,某个公司的员工管理系统

分布式系统架构解决方案——Dubbo_第1张图片

ORM:对象关系映射(Object Relational Mapping)

  • 优点
  1. 小项目开发快
  2. 成本低 架构简单
  3. 易于测试
  4. 易于部署
  • 缺点
  1. 大项目模块耦合严重 不易开发 维护 沟通成本高
  2. 新增业务困难
  3. 核心业务与边缘业务混合在一块,出现问题互相影响 

垂直应用架构

  • 当访问量逐渐增大,单一应用增加机器带来的加速度越来越小,将应用拆成几个互不相干的几个应 用,以提高效率;
  • 大模块按照mvc分层模式,进行拆分成多个互不相关的小模块,并且每个小模块都有独立的服务器
  • 此时,用于加速前端页面开发的web框架(MVC)是关键;因为每个小应用都有独立的页面

分布式系统架构解决方案——Dubbo_第2张图片

MVC:模型视图控制器 (Model View Controller)

缺点:

  • 模块之间不可能完全没有交集,公用模块无法重复利用,开发性的浪费 

分布式服务器架构

  • 当垂直应用越来越多,应用之间交互不可避免,将核心业务抽取出来,作为独立的业务,逐渐形成 稳健的服务中心,使前端应用能更快速的响应多变的市场需求;
  • 此时,用户提高业务复用及整合的分布式服务框架(RPC)远程调用是关键; 

分布式系统架构解决方案——Dubbo_第3张图片

 RPC:独立的应用服务器之间,要依靠RPC(Romote Procedure Call)才能调用

  • 物流服务不忙,有100台服务器; 商品服务特别忙,也是100台服务器;
  • 如何做到资源优化调配?↓

流动计算架构

  • 当服务越来越多,容量的评估,小服务资源的浪费等问题逐渐呈现,此时需增加一个调度中心基于 访问压力实时管理集群容量,提高集群利用率;
  • 此时,用于提高机器利用率的资源调度和治理中心(SOA)是关键; 

分布式系统架构解决方案——Dubbo_第4张图片

SOA:面向服务架构(Service-Oriented Architecture),简单理解就是“服务治理”,例如:公交车站 的“调度员” 

你可能感兴趣的:(分布式,架构,java,分布式)