什么是微服务——微服务架构体系介绍

Why Microservices?

回答这个问题前,我们先看下之前大行其道单体架构 - Monolithic Architecture,对于非专业人士来讲,所谓的单体架构,其就像一个超大容器,容器内集中包含了该应用的所有软件组件,并且组件与组件之间紧密耦合。

在这里插入图片描述
对于这种架构,其缺陷或者说潜在不足也很明显,简单总结如下:

  • 臃肿僵化不灵活: 单体架构很难采用多种技术
  • 可靠性较差: 这种架构最明显的特征就是牵一发而动全身,一个小小的功能失效可能会导致整个系统的不可用
  • 扩展性较差: 应用本身无法轻易的进行扩展,一旦需要进行对某个或者某些功能进行扩展或者更新,我们需要重新构建整个系统
  • 阻碍连续性的开发: 应用的许多功能特性无法被同时构建和部署
  • 开发速度慢: 单体应用的开发耗时较长,因为我们需要依次构建相应的功能模块
  • 不适用于复杂的应用: 复杂应用的各个功能特性紧耦合

何为微服务?

微服务,又称微服务架构,这种架构聚焦业务领域,将应用通过一个个小而自治的服务组织起来。在微服务架构中,每一个服务都是自包含的且唯一实现某个单一业务功能。
在这里插入图片描述

微服务与传统单体架构的区别

在这里插入图片描述
为了便于理解,我们这里以我们常见的电子商务应用为示例说明,很明显,传统的单体架构下,所有服务共享一个应用实例并且共享同一个后台数据库,而微服务架构下则应用本身业务功能划分为不同的微小服务,每个服务都自行处理各自业务数据,处理不同的业务功能。

微服务架构

接下来,我们进一步了解下微服务架构究竟有哪些特征以及什么是微服务,看下面的架构图例。
在这里插入图片描述

  • 设备不同,各客户端所使用的服务也不尽相同,比如:检索、构建、配置抑或其他管理功能
  • 基于各自业务领域的不同,每个服务都相对独立,而且会根据实际被进一步细化为更小粒度的服务
  • 每个服务都有各自的负载均衡和运行环境,并且各自拥有相对独立的数据源
  • 服务间的通信通常采用无状态通信协议,比如:REST或者消息总线
  • 借助服务发现机制,服务消费方与提供方可以彼此无忧通信,并可进行一些自动化及监控操作
  • 服务与客户端的交互都是通过服务网关进行的
  • 所有内部联通节点均与服务网关相连,即一旦你连接到服务网关,你即可访问网关后的所有服务端口

微服务的主要特征

在这里插入图片描述

  • 解耦
  • 组件化
  • 业务功能化
  • 自治
  • 持续集成
  • 单一责任
  • 去中心化
  • 敏捷

微服务架构的优势

在这里插入图片描述

  • 独立部署
  • 独立开发
  • 故障隔离
  • 混合技术栈
  • 细粒度级扩展,即单个组件可以自由横向扩展

微服务架构设计最佳实践

在这里插入图片描述

原文链接:

https://www.edureka.co/blog/what-is-microservices/

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章