linux运维、架构之路-微服务容器化迁移

一、微服务特点

1•服务组件化
   每个服务独立开发、部署,有效避免一个服务的修改引起整个系统重新部署。
2•技术栈灵活
   约定通信方式,使得服务本身功能实现对技术要求不再那么敏感。
3•独立部署
   每个微服务独立部署,加快部署速度,方便扩展。
4•扩展性强
    每个微服务可以部署多个,并且有负载均衡能力。
5•独立数据
    每个微服务有独立的基本组件,例如数据库、缓存等。

微服务架构图:

二、微服务的不足

  • 沟通成本:每个组件不同的人或者不同的团队开发,需要一定的沟通成本
  • 数据一致性:每个独立组件的数据,多个副本的数据一致性
  • 运维成本:相比传统的单体应用只部署一个,微服务得部署几十个,涉及大量的配置,监控等
  • 内部架构复杂性:分布式,每个组件间的通信问题,不同的数据库

 三、单体架构优势和不足

1、优势

  • 易于部署:部署只需部署一个包即可
  • 易于测试:编写测试用例只需要一份即可

2、不足

  • 代码膨胀,难以维护:随着业务的增长,代码量越来越多,可扩展、可维护性会很差
  • 构建、部署成本大:每次构建都是全量的包,部署多套也不会提高并发性
  • 新人上手难:业务越来越复杂,可读性、可维护性会大幅度下降,新手接手代码时间会很长

 

原文地址:https://www.cnblogs.com/yanxinjiang/p/13149832.html