微服务与 API:有什么区别?

发布时间:2021-07-18 12:11:49

什么是 API?

应用程序编程接口或API,是应用程序的一部分,与其它应用程序进行通信。从技术上讲,API 是一组协议和方法,用于定义两个应用程序如何共享和修改彼此的数据。

API 在我们的现代数字基础设施中是必不可少的,因为它们可以在功能和结构可能不同的应用程序之间实现标准化和高效的通信。

API 位于软件的核心组件和公众之间,外部开发人员可以访问应用程序后端的某些部分,而无需了解应用程序内部的所有内容。这就是使 API 成为程序接口的原因。

api与微服务.png

API 的用途是什么?

如果您使用软件,则使用 API。这是因为 API 支持软件集成,它们允许单独的软件实体一起共享信息和功能。

想象一下,您正在网上购物并准备结账。您会看到您所在的商店提供了通过支付宝付款的选项,并且您已经拥有支付宝帐户。

由于支付宝与您当前所在的商店是不同的公司,因此 API 促进了商店和支付宝之间的交互。首先,商店使用支付宝的支付网关 API 来请求您的支付信息。接下来,支付宝对请求进行字段处理,对其进行验证,从其客户数据库中获取信息,然后将其发送回商店。最后,商店使用您的卡信息完成交易。

REST API

由于 API 更像是一个概念,程序员可以随心所欲地为他们的应用程序构建 API。然而,大多数依赖于框架来创建它们。

REST,即Representational State Transfer,是一个开发API的框架,符合REST的API称为REST API。REST API 是最常见的跨平台集成 API 类型,也用于微服务。

REST 概述了一组用于构建 API 的约束,这些约束使 API 变得高效和安全。REST API 通过处理 HTTP 请求并以JSON(JavaScript 对象表示法)格式返回响应来工作。HTTP(超文本传输协议)已经是基于网络的数据传输的标准协议。因此,通过了解一些 HTTP 知识,开发人员可以轻松学习如何构建 REST API 或与 REST API 交互。

什么是微服务?

微服务是一种软件架构风格,它将应用程序的不同功能划分为称为“服务”的较小组件。当以这种方式构建应用程序时,它被称为遵循微服务架构。

例如,像 支付宝这样的应用程序的微服务架构可以包括用于用户帐户管理、与在线商家集成和用户身份验证的单独服务。每个服务都像它自己在更大系统中的小软件一样工作。

大型微服务中的每个服务只有一项任务,但这些任务的范围取决于应用程序的开发人员。一个基本的软件应用程序可能依赖于一些服务,就像支付宝一样。或者,在大型软件公司的情况下,一个应用程序可能包含数百个具有高度特定功能的细粒度服务。

为什么要使用微服务架构?

要理解为什么微服务架构对软件开发人员有益,我们首先需要了解它的前身,单体应用。

单体应用程序与微服务相反,不是将不同的任务分配给不同的自包含服务,应用程序的每个功能都由单个程序处理。

虽然以这种方式开始开发应用程序可能是有意义的,但为什么要创建多个程序呢? 随着应用程序的功能和复杂性的增长,单体应用程序的拥护者会遇到问题。将应用程序的每个方面都塞进一个程序中,这使得编程和发布更新、跟踪更改、识别问题、为开发人员委派任务以及大致理解代码变得困难。

换句话说,巨石内部的一切都如此紧密相连,以至于很难解开。这创造了对新型架构的需求,因此微服务兴起。

与单体相比,微服务架构改进了:

更新:在微服务应用程序中,更新单个服务不需要修改整个系统。这可以节省时间、金钱和调试工作。它还支持滚动更新,而不是不频繁的主要更新。

简单性:开发人员无需了解整个系统架构即可了解软件的一个方面。

团队组织:微服务定义了开发人员职责之间的界限。团队可以被分配到一个或多个微服务,而不是模糊的单体的某个部分。

安全性:如果一项服务受到威胁,它(理想情况下)不会显着影响任何其他服务。

健壮性:同样,如果一项服务中断,其他服务也不会受到损害。

灵活性:如果团队希望以特定方式(例如使用不同的语言或框架)构建服务,他们无需担心这可能会如何影响其他组件。

通过分离职责,微服务加速并简化了软件开发过程。

微服务与 API

API 是与其他应用程序通信的 Web 应用程序的一部分。软件的 API 定义了一组可接受的 API 请求以及对这些请求的响应。

微服务是一种构建应用程序的方法,它将应用程序的功能分解为模块化的、自包含的程序。微服务使创建和维护软件变得更加容易。

虽然不同,但微服务和 API 经常配对在一起,因为微服务中的服务使用 API 相互通信。类似于应用程序如何使用公共 API 与不同应用程序集成,微服务的一个组件使用私有 API 来访问同一微服务的不同组件。

在微服务中,每个服务都有自己的 API,用于确定它可以接收哪些请求以及如何响应。这些 API 通常遵循 REST 原则。

需要注意的是,没有两个微服务是相同的,它们都以不同的方式使用 API。有些人可能会为一个服务分配多个 API,或者使用单个 API 来访问多个服务。

最后,请记住 API 的用途超出了微服务。正如我们所讨论的,Web API 支持系统之间的数据共享,这是许多 Web 应用程序所必需的。此外,API 可以在内部使用,但无需微服务实现。

软件架构的未来(和现在)

在过去十年中,领先的软件公司亚马逊等都采用了微服务方法。当然,它们的实现有点复杂,但基本原理是相同的:将应用程序的任务分解为软件子组件使一切变得更简单、更高效,而 API 则将它们联系在一起。

声明:本站发布的内容以原创、转载、分享网络内容为主,如有侵权,请联系电话:400-887-2127,邮箱:7221960@qq.com ,我们将会在第一时间删除。文章观点不代表本站立场,如需处理请联系我们。