1

微服务与 API 有何不同?

 2 years ago
source link: https://www.jdon.com/62182
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

微服务与 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 超越了微服务。它们可以在没有微服务实现的情况下在内部使用。
 


Recommend

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK