【微服务架构】微服务的简介
微服务是什么?
2012年,“微服务架构”这个术语出现了,直到2014年才开始被关注。微服务是一种架构风格,一种将软件应用程序设计为可独立部署的服务套件的特定方式。虽然这种架构风格没有确切的定义,但是从名称看来,微服务注重的是“微”,注重的是“服务”,围绕业务能力,自动化部署,端点智能以及语言和数据的分散控制等方面存在着某些共同特征。
“微服务” - 近几年来是一个新名词,许多项目在过去几年中都采用了这种风格,相比往年的分模块开发和单体应用项目而言,得到的 迄今为止的结果是积极的,甚至在未来的几年中,微服务架构的理念会广为流传,成为众多公司项目的首眩因此对于很多互联网公司来说,微服务架构将会成为构建企业应用程序的默认风格。
简单来说,微服务架构是一种将单体应用程序当中的各种功能拆分为各个不同的服务,每个服务部署成一个项目独立运行,各个服务之间是松耦合的,每个服务只关注自己本身的功能。每种应用程序都在其自己的进程中运行,并与轻量级机制(通常是HTTP资源的API)进行通信。这些服务是围绕业务功能构建的,可以通过全自动部署机制进行独立部署。
可以在“自己的程序”中运行,并通过“轻量级设备与HTTP型API进行沟通”。关键在于该服务可以在自己的程序中运行。通过这一点我们就可以将服务公开与微服务架构(在现有系统中分布一个API)区分开来。在服务公开中,许多服务都可以被内部独立进程所限制。如果其中任何一个服务需要增加某种功能,那么就必须缩小进程范围。在微服务架构中,只需要在特定的某种服务中增加所需功能,而不影响整体进程,减少了单体应用时期一项报错整体瘫痪的情况。
微服务的优点
微服务架构模式有许多非常好的地方。
-
第一,微服务解决了复杂问题。它把庞大的单体应用程序分解成一整系列的服务。虽然功能数量不变,但是程序被分解成可管理的块或者服务。每个服务都有一个明确的功能边界,如远程过程调用(RPC)驱动或消息驱动
API。微服务架构模式强制一定程度的模块化,实际上,使用单体代码来实现是极其困难的。因此,使用微服务架构模式,项目整体逻辑更加清晰,更容易理解与维护,减少了企业中新人维护老项目无从下手的尴尬情况。 -
第二,微服务架构使项目中分离的每个服务都可以由一个团队独立专注开发。开发者可以自由选择任何符合服务 API
契约的技术。这样的开发方式可以较好的避免混乱的开发状态,
这种自由意味着开发人员不再有可能在这种自由的新项目开始时使用过时的技术。当编写一个新服务时,他们可以选择当前的技术。此外,由于服务较小,使用当前技术重写旧服务将变得更加可行。 - 第三,微服务架构模式可以实现每个微服务独立部署。开发人员根本不需要去协调部署本地变更到服务。这些变更一经测试即可立即部署。比如,UI团队可以执行 A|B 测试,并快速迭代 UI 变更。微服务架构模式使得持续部署成为可能,为后期项目的持续部署打下基矗