美文网首页
四、单体架构的不足

四、单体架构的不足

作者: 薛定谔的猫_1406 | 来源:发表于2018-06-11 21:50 被阅读0次

    一、单体架构的优势与不足

    1.1 优势

    • 易于开发:只需借助IDE的开发调试功能即可完成;
    • 易于测试:只需通过单元测试或者浏览器即可完成测试;
    • 易于部署:打包成单一可执行jar,执行jar包即可完成部署;

    1.2 单体架构的不足

    • 复杂性高:代码难以理解,导致代码质量低,复杂性进一步增加,代码难以被修改和重构;
    • 交互效率高:构建和部署时间长,难以定位问题,开发效率低;
    • 全量部署耗时长,影响范围广,风险大,发布频次低;
    • 伸缩性比较长:单体只能横向扩展,无法分模块垂直扩展;
    • IO密集型模块和CPU密集型模块无法进行独立升级和扩容;
    • 可靠性差:一个BUG可能引起整个应用崩溃;
    • 阻碍技术创新:团队必须使用同一框架和语言。

    二、微服务架构

    2.1 什么是微服务架构: 将单体应用拆分成多个高内聚低耦合的小型服务,每个效服务运行在独立的进程,由不同的团队进行维护和开发,服务间采用轻量级通信机制,独立自动部署,可以采用不同的语言及存储 。

    2.2 微服务的优势:

    • 独立部署;
    • 一个微服务的修改不需要协调其它服务;
    • 每个服务都可以在横向和纵向上扩展;
    • 每个服务都可按硬件资源的需求进行独立扩容。

    三、微服务的三个方向的扩展:

    • X轴扩展:


      X轴扩展
    • Z轴扩展


      Z轴扩展
      Y轴扩展
      一个电商平台的架构

    四、微服务的挑战

    • 服务拆分的原则
    • 数据一致性
    • 服务间的通信:RPC vs RESTvs 异步消息
      REST的好处是:方便调试,跨语言、学习门槛较低,易于被大家接受,缺点是协议文档不可维护,协议较为繁琐。RPC是基于TCP,常用的技术选型是DUBBO等。
    • 服务网关
    • 高可观察

    4.1 微服务的关注全景图:

    微服务的关注全景图

    相关文章

      网友评论

          本文标题:四、单体架构的不足

          本文链接:https://www.haomeiwen.com/subject/jgfkeftx.html