zoukankan      html  css  js  c++  java
  • 微服务优缺点

    优点

    该解决方案具有许多优点:

    • 支持大型复杂应用程序的连续交付和部署。
    • 改进的可维护性-每个服务都相对较小,因此更易于理解和更改
    • 更好的可测试性-服务更小,测试更快
    • 更好的可部署性-服务可以独立部署
    • 它使您可以围绕多个自治团队组织开发工作。每个(所谓的两个披萨)团队都拥有并负责一项或多项服务。每个团队都可以独立于所有其他团队开发,测试,部署和扩展服务。
    • 每个微服务都相对较小:
    • 开发人员更容易理解
    • IDE更快,使开发人员工作效率更高
    • 该应用程序启动速度更快,从而使开发人员的工作效率更高,并加快了部署速度
    • 改进的故障隔离。例如,如果一项服务中存在内存泄漏,则仅该服务会受到影响。其他服务将继续处理请求。相比之下,整体架构的一个行为不当的组件可能会使整个系统崩溃。
    • 消除了对技术堆栈的任何长期承诺。开发新服务时,可以选择新技术堆栈。同样,在对现有服务进行重大更改时,您可以使用新技术堆栈将其重写。

    缺点

    该解决方案具有许多缺点:

    • 开发人员必须应对创建分布式系统的额外复杂性:
    • 开发人员必须实现服务间通信机制并处理部分故障
    • 实施跨越多个服务的请求更加困难
    • 测试服务之间的交互更加困难
    • 实施跨多个服务的请求需要团队之间的仔细协调
    • 开发人员工具/ IDE面向构建整体应用程序,不为开发分布式应用程序提供明确支持。
    • 部署复杂度。在生产中,部署和管理由许多不同服务组成的系统也存在操作复杂性。
    • 增加内存消耗。微服务架构用NxM个服务实例替换了N个单片应用程序实例。如果每个服务都在其自己的JVM(或等效版本)中运行(通常是隔离实例所必需的),则JVM运行时的开销是M倍。此外,如果每个服务都在其自己的VM(例如EC2实例)上运行(如Netflix的情况),则开销会更高。
  • 相关阅读:
    标准库:Number 对象
    标准库:Boolean 对象
    标准库:包装对象
    标准库:Array 对象
    git的基本操作
    子查询、联结、约束、索引
    sql基础、检索、过滤数据
    聚合函数和分组数据-GROUP BY、HAVING
    长期更新~java学习过程中遇到的英语单词
    3.(155)最小栈
  • 原文地址:https://www.cnblogs.com/vinic-xxm/p/11927117.html
Copyright © 2011-2022 走看看