理解 API、Web 服务和微服务的基本概念

2025-05-26

理解 API、Web 服务和微服务的基本概念

替代文本

开发人员一直在使用三大主要构建模块来开发 Web 应用,即 API、Web 服务和微服务。有些人仍然不了解这些应用开发模块的基本概念、可用性和工作原理。因此,今天的文章专门针对那些听说过这些术语,但对它们各自的用途感到困惑的人。

通常,Web 应用程序由三个主要组件运行:服务、网关和控制器。

这里,网关是应用程序的单一入口点。每当客户端想要与 Web 应用程序交互时,它负责身份验证、负载平衡、监控、缓存、静态响应处理等。

控制器就像一个管理器,负责管理传入的请求,决定哪个工作人员应该做这项工作,将工作分成更小的任务,传递这项工作,协调工作并将其发送回客户端。

尽管如此,控制器部分中提到的工作者是从管理器接收请求的服务,找出用于完成请求的算法或逻辑,只负责分配的工作并将完成的工作返回给管理器。

理解 API、Web 服务和微服务之前需要了解的基本概念

在我们进一步理解这三个术语之前,了解 Web 应用程序的组件及其工作原理将会很有帮助。

现在假设您正在开发一个用于购物的网络应用程序,为此您需要添加一个产品描述页面,该页面不仅显示与给定产品相关的信息,还显示许多其他信息,包括订单历史记录、客户评论和评级、库存不足警告、购物车中的商品数量、运输选项、其他产品推荐和当前产品的替代品。

在单片 Web 应用程序中,客户端将通过对应用程序的 REST 调用来检索此数据,这将触发负载均衡器将请求路由到应用程序的相同实例,这些实例将查询众多数据库,然后返回响应。

另一方面,在使用微服务架构的应用程序中,产品页面上显示的数据由不同的微服务拥有。拥有项目页面数据的一些微服务包括:购物车服务、订单服务、目录服务、库存服务、配送服务、评论服务和推荐服务。

现在,您已经清楚地了解了应用程序的工作原理,是时候了解 API、Web 服务和微服务的细节了,以便您可以清楚地了解这些与之相关的术语的含义。

API VS Web VS 微服务

什么是 API?

API (应用程序编程接口)是服务与应用程序之间的通信通道。它可用于根据应用程序的架构调用单个或多个服务。它是一种在内部和外部用户之间请求和共享信息、服务和功能的安全方式

简而言之,API是一个信使,它接收请求,告诉系统用户想要做什么,然后返回响应。它是请求者和主机之间的一种通信方式,通常可以通过 IP 地址访问。它可以向用户传达多种信息,例如需要共享的数据和需要提供的功能。

API使应用程序能够与其他服务或应用程序进行通信,而无需了解其实现。它简化了应用程序开发流程,同时节省了时间和成本。API 是一种通过云原生开发连接应用程序基础架构的简化方式允许与客户或其他外部用户共享数据。

简而言之,它在保持控制和安全的同时开放资源访问权限。API 安全的核心在于 API 管理,其中包括使用 API 网关。API 网关分为三种类型:私有 API、公共 API 和合作伙伴 API。私有 API 仅在组织内部使用。公共 API 允许第三方构建与您的应用程序API 交互的应用程序,而合作伙伴 API 则与某些业务合作伙伴共享,以便在不影响质量的情况下获得额外的收入来源。

什么是 Web 服务?

Web 服务是通过万维网超文本传输​​协议 (HTTP) 进行交互的客户端和服务器应用程序。根据万维网联盟 (W3C) 的定义,Web 服务提供了一种在各种平台和框架上运行的软件应用程序之间进行互操作的标准方法。Web 服务以其强大的可扩展性和互操作性以及通过使用 XML 实现的机器可处理描述而著称。Web 服务可以以松散耦合的方式组合在一起,以执行复杂的操作。

Web 服务架构由三个不同的角色组成:提供者、请求者和代理。提供者通过代理的公共接口将 Web 服务的存在告知代理/服务注册中心,从而使客户端可以访问服务,而请求者则可以绑定并调用服务。它是一种轻量级的面向服务架构,支持互操作性。

简而言之,Web 服务是以 XML 为中心的数据交换系统,利用互联网进行应用程序之间的通信和交互。客户端可以通过 XML 发送请求来调用 Web 服务,然后 Web 服务也会提供 XML 响应。Web
服务包含以下功能:

  • 可通过内联网和互联网网络获得
  • 编程语言和操作系统的独立性
  • 通过 XML 进行自我描述
  • 可通过简单的定位方法识别
  • 支持使用 HTML、SOAP、WSDL 和 XML 的应用程序之间的通信。

这里,XML标记数据,SOAP传输消息,WSDL描述服务的可访问性。

什么是微服务?

微服务是一种架构风格,它将应用程序构建为一系列服务集合,这些服务松散耦合、高度可维护、可测试、可独立部署、围绕业务功能组织,并由一小群开发团队负责。它支持以频繁、敏捷且可靠的方式交付复杂的大型应用程序。

SOA 架构中,如果要创建搜索功能,则必须将其部署在一台服务器上,该服务器还包含其他功能。任何原因导致搜索服务故障,都可能导致整个应用程序崩溃。而在微服务架构中,所有功能都被拆分成更细粒度的组件,每个服务都部署在不同的服务器上,从而确保服务之间彼此独立。也就是说,一个或多个功能的故障不会影响 Web 应用程序的其他部分。由于微服务的服务构成较小,其容错能力也更强。

当应用程序的某个部分需要更改时,只需修改和部署相关的服务,而不会影响整个应用程序的功能。它使开发人员能够独立开发和部署服务,同时使用一种理想的编程语言来开发服务,并使用另一种语言或框架来实现其他功能。它更容易扩展并与第三方服务集成。

清晰地理解 API、Web 服务和微服务之后,可以说这三者之间并无可比性。API 和 Web 服务是不同架构风格的通信接口,而微服务则是一种独特的方法,用于开发具有明确接口和可操作性的软件系统。

如果您是企业主,想要开发基于这些服务和架构的应用程序,那么您可以聘请在同一领域具有相关经验和专业知识的开发人员。

来源:Decipher

文章来源:https://dev.to/priyanshi_sharma/basic-concepts-to-understand-api-web-services-microservices-3g02
PREV
成为更优秀程序员的 10 条黄金法则
NEXT
如何在 Heroku 上设置免费的 PostgreSQL 数据库