高并发系统是什么?对比单体系统,分布式系统,微服务框架。

高并发定义:

通常是指通过设计保证系统能够同时处理很多请求。即在同一时间点,有很多请求同时访问一个接口。

高并发系统指标

  1. 响应时间

  2. 吞吐量

  3. 每秒请求数

  4. 每秒事务数

  5. 访问量

  6. 独立访客(访问某个站点或者某个链接的不同ip地址数)

  7. 网络流量

对比单体系统、分布式系统和微服务系统

单体系统定义:

单体系统即一个应用程序,所有的业务代码都在这一应用系统程序中,所有的表也都在一个数据库中,所涉及的相关文件都在一个服务器上。

单体系统面临的问题
  1. 需要频繁的合并代码分支,影响项目的迭代进度。

  2. 多人协作耦合度高,测试效率低下。

  3. 开发节奏混乱,测试效率低下。

  4. 代码模块层次越来越复杂,业务边界变得不清晰。

  5. 项目越来越庞大,技术架构升级变得困难。

分布式架构定义:

分布式架构是指,将相同或者相关的应用放在相同或者相关的应用放在多台计算机上允许,以达到分布式计算的目的。

分布式架构局限性:
  • 开发者在开发应用时,需要考虑当前应用的API模块。应为如果业务需求修改了相关底层逻辑,则这种修改会影响API模块。

  • 外部的服务需要依据自己的业务向服务方提出相应的小需求。服务提供方可能只是改动了API模块但是从整体来讲则需要重新测试并且部署,影响服务稳定性。

由此可见,分布式架构更适合与业务关联性低、耦合少的业务系统。

微服务架构定义:

微服务是一种流行的架构设计风格。最早在 2014年由 Martin Flower 和 James Lewis 共同提出:

  • 微服务是由单一应用构成的小型服务,拥有自己的进程与轻量化处理。

  • 微服务依据业务功能设计,以全自动的方式部署,与其他微服务使用HTTP API进行通信。

  • 微服务会使用最小规模的集中管理技术,例如Docker。

  • 微服务可以使用不同的编程你语言和数据库。

微服务系统就是将复杂的单体系统中的模块按照某种规则进行拆分,这些被拆分出来的模块被独立部署在相对较小的服务器集群上。独立部署的模块彼此之间使用远程调用方式来完成整个业务的处理。这些被独立部署的模块就是微服务,而这样的应用架构就是微服务架构。

微服务具体落地时,需要采用去中心化方式,并且使用轻量型通信框架,最后将它们打造成技术上轻量级,功能上细分的独立微服务

微服务架构特征:
  1. 通过服务实现组件化。

  2. 围绕业务能力来组织开发团队。

  3. 去中心化管理(每个服务选择最适合技术栈,只需定义好API契约)

  4. 去中心化数据存储(每个服务有自己的数据库)

  5. 基础设施自动化(需部署项目多需要多次部署)

  6. 充分考虑故障

微服务架构的问题:
  1. 增加了复杂度:单个应用演变到多个应用,不仅会带来服务数量的增加,也会带来交互模式的变更。

  2. 服务间的通信会变得复杂。

  3. 在落地微服务时,微服务边界的划分增加了实现的复杂度:

    • 如果服务颗粒度划分的过粗,则随着业务复杂度的上升,系统会变成一个庞大的单体应用。

    • 如果服务颗粒度划分的过细,则会出现数量很多的服务,这样又会增加服务运维及监控成本。

  4. 保持数据一致性非常复杂

    • 注意:在单体架构中,需要通过数据库事务的 ACID 特性来保证数据一致性;而在微服务架构中,通常只需要保证数据的最终一致性

  5. 对运维团队(数据库,消息中间件,持续集成,持续部署)和开发团队(微服务开发经验)都有更高要求。

  6. 开发流程复杂。

你可能感兴趣的:(高并发系统,java,spring,cloud,spring,boot)