微服务

随着企业 IT 服务的不断发展,单台服务器逐渐无法承受用户日益增长的请求压力时,就需要多台服务器联合起来构成「服务集群」共同对外提供服务。

同时业务服务会随着产品需求的增多越来越肿,架构上必须进行服务拆分,一个完整的大型服务会被打散成很多很多独立的小服务,每个小服务会由独立的进程去管理来对外提供服务,这就是「微服务」。

定义:使用一套小服务来开发单个应用的方式,每个服务运行在独立的进程里,一般采用轻量级的通讯机制互联,并且它们可以通过自动化的方式部署。

多微算微?

代码量、开发周期都不算是,不可度量

微服务的特征有哪些?

  • 单一职责
  • 轻量级通信(平台无关、语言无关,HTTP)
  • 隔离性(独立进程运行)
  • 独立数据存储系统(降低数据的服务度、耦合度)
  • 技术多样性

微服务诞生背景?

  • 互联网行业快速发展
  • 敏捷开发,快速迭代
  • 容器时代

微服务的优势?

  1. 独立性,体现在独立存储,不会轻易影响到其他系统
  2. 敏捷性,体现在需求变更,代码重构,技术迭代
  3. 技术栈灵活,多种语言通过轻量级协议完成交互
  4. 高效团队

微服务的劣势?

  1. 额外的工作,服务的拆分,BDD面向对象建模方法
  2. 数据一致性
  3. 沟通成本,跨团队沟通

微服务带来的问题?

  1. 微服务如何通讯?
  2. 微服务如何发现彼此?
  3. 微服务如何部署?更新?扩容?
    • 部署是个问题,因为微服务将一个应用拆分为一个个小服务,所以部署服务会变得更为频繁和复杂,因为其内部关联关系所致,这对传统的CI、CD是个小挑战~

微服务如何通讯?

从通讯的模式方式考虑

模式 一对一 一对多
同步 请求响应模式 -
异步 请求/请求异步响应 发布/订阅

从通讯的协议考虑

results matching ""

    No results matching ""