微服务--单体架构

经典3层模型

  • 表现层:交互层,用于直接与用户交互。通常指网页,UI
  • 业务逻辑层:业务逻辑处理层
  • 数据访问层:用于操作数据库

经典的单体架构

  • 表现层、逻辑层、数据访问层在一个工程,编译打包,部署在一台服务上。
  • 经典的J2EE工程:表现层JSP、业务逻辑层Service Controller和数据访问层Dao ,打成war包,部署在tomcat等其他的servlet容器中运行。
  • 经典的部署方式LMAP
    微服务--单体架构_第1张图片

单体架构优势

  • 开发快速
  • 运维难度低、系统管理方便
  • 服务器成本低

单体架构不足

  • 不停迭代,代码量冗余,可读性、可维护性和可扩展性下降。
  • 单体应用并发能力有限
  • 单一系统,并行困难,不利于告诉迭代

单体架构服务器集群

微服务--单体架构_第2张图片

  • 负载均衡:处理高并发网络请求,将访问分派到不同的应用服务器。软负载:nginx等,硬负载:F5等
  • 应用部署集群:横向扩展,高可用。用户量增加,扩展服务器即可。
  • 缓存服务器:提高响应速度,缓解数据库压力。
  • 数据库:主从备,读写分离 ; 分库分表

单体架构服务器集群的不足

  • 单体应用,代码量依旧冗余,可读性、可维护性、可扩展性还是欠缺。
  • 海量访问,数据库依旧是瓶颈。
  • 单应用依旧迭代缓慢,持续交付能力差

由此可见,在应用初期,单体应用从成本、开发时间和运维方面有优势。但随着业务量和用户量增加,缺点也显而易见

你可能感兴趣的:(微服务)