Spring Cloud为什么会出现?

  1. 单体应用的缺陷
  •   复杂性高,所有的业务代码都集成再一个war包,各模块的关系混乱,代码质量难以管理
  • 技术债务,随着业务模块的不断增加、开发人员的更迭,会形成不出问题不进行代码优化的技术债务
  • 部署频率低,只要有新代码更新,必须重新部署
  • 可靠性差,可能某一模块的bug会影响整个应用
  • 扩展能力受限,单体应用只能进行整体进行扩展,无法根据业务模块的进行扩展
  • 技术更新受限,单体应用程序的技术往往固定,很难变更

2.我所理解的微服务

微服务目前还没有一个确切的定义。我所理解的微服务即:将以往的单体应用按功能划分为多个功能相对单一的服务,各个服务之间相互独立,运行和部署环境同样独立;各服务之间通过http协议进行通讯,以RESTFUL API接口对外提供服务。

3.微服务的优点与缺点

优点:

  • 易于开发与维护:聚焦特定业务、开发相对简单、复杂度低
  • 单个服务启动较快:代码量少、耦合度低
  • 局部修改、易于部署
  • 技术栈扩展灵活

缺点

  • 分布式结构:复杂度高,维护成本高
  • 重复劳动:相同的功能可能存在于多个微服务中,导致代码重复

4.微服务的设计原则:

  • 单一原则(single):关注本服务的功能,具有功能边界、
  • 服务自治:每个服务拥有独立的业务能力、独立的运行、部署环境。
  • 轻量级通讯:各服务之间可以进行通讯,并且是轻量级的通讯,可跨平台、跨语言,例如https
  • 微服务粒度:合理划分微服务的粒度,粒度太大违背微服务的设计初衷,太小浪费资源。

简单的微服务架构

Spring Cloud为什么会出现?_第1张图片

你可能感兴趣的:(javaWeb异常;)