微服务与 API 有何不同?


API 和微服务对于任何现代应用程序的开发都至关重要。虽然它们的性质不同,但有时由于很相近,两者之间可能会混淆。

什么是微服务
微服务是一种由各个独立服务组成的架构风格。现代应用程序依靠微服务架构来加快部署速度。微服务流行的主要原因是易于逐步开发应用程序的各个功能。较大的组织利用微服务在不同的团队中工作,而他们之间没有任何复杂的通信。Amazon Web Services 将微服务描述为:
微服务将一个更大的团队细分为独立的小型运营团队,这些团队完全拥有他们的服务。团队协作工作并相互授权以缩短周期时间。
微服务的特点

  • 每个服务都有自己独立的代码库、数据库层和 CI/CD 工具包。
  • 保存数据是微服务的职责
  • 每个服务都可以独立部署和测试,而不依赖于任何其他服务。
  • 服务之间的内部通信通过定义明确的 API 或任何轻量级通信协议进行。
  • 每个微服务决定最适合其用例的技术堆栈、库和框架。
  • 如果出现网络或系统故障,服务应实现重试功能。

什么是 API?
应用程序编程接口或 API 是允许开发人员与应用程序交互的入口。交互允许开发人员完成两件事:访问应用程序的数据或使用应用程序的功能。使用社交媒体帐户在网站上进行身份验证、从单独的应用程序访问谷歌地图、触发物联网设备等都依赖于 API。
API 通常是为第三方用户创建的。它们通常是公开的。随着微服务的日益普及,越来越多的私有 API 应运而生。组织利用 API 作为单个微服务相互通信的轻量级解决方案。
用技术术语来说,API 通过 HTTP 请求发送数据。对此,API 以 JSON 的形式返回文本响应,开发人员可以根据他们的可行性使用这些响应。存在多种类型的 API,例如 REST、SOAP、GraphQL、gRPC 等。

微服务和 API 的区别
在进入更多细节之前,让我们快速回顾一下:

  • API 是在微服务之间进行通信的东西。软件 API 定义什么是可接受的请求以及如何响应请求。
  • 微服务是一种将应用程序的功能构建成离散的、模块化的、自包含的程序的架构方法。它允许开发人员通过分解功能轻松地创建和维护应用程序。

微服务和 API 经常耦合在一起,尽管它们是两个不同的实体。微服务中的服务利用私有 API 相互通信。微服务的一个组件使用私有 API 来访问同一微服务的另一个组件。这种思想类似于使用公共 API 来连接应用程序。
重要的是要记住,没有两个微服务是相同的,它们都以不同的方式使用 API。有些人会将许多 API 分配给单个服务,而另一些人会使用单个 API 来访问多个服务。另一方面,API 超越了微服务。它们可以在没有微服务实现的情况下在内部使用。