微服务是由一家公司提供的一个小的、单一的服务。它源自连接许多小型服务而不是拥有一项大型服务的分布式计算体系结构。可以通过应用程序编程接口(API)交付微服务。
API是请求者与主机之间进行通信的一种方法,通常可以通过IP地址进行访问。API可以向用户传达多种类型的信息,例如:
- 要共享的数据
- 要提供的功能
简而言之,谈论微服务必须与软件的体系结构做更多的事情,而API与如何将微服务公开给消费者有关。
微服务是如何运作的?
微服务是从公司的大型单一服务的思想扩展而来。微服务是单个功能。如果将Microsoft Word拆分为微服务,也许会有一个服务作为空白纸提供,一个服务作为拼写检查器提供,一个服务作为格式化工具提供。
Kubernetes允许计算机软件进行调整。Kubernetes有其自身的优势,它也推动了软件设计从单一的服务整体走向到许多一起工作的小型服务的集合。这些过程正是因为Kubernetes的设计可以做到:
- 有效地协调服务器上单个容器的使用
- 提高系统可靠性和可扩展性
- 减少相关的管理和资源成本
微服务的例子
微服务非常简单。简单是主要的目标。可以将它们视为公司中的角色。一个微服务扮演着非常特殊的角色,并且只做一项工作。DZone汇集了Uber提供的各种微服务的出色图表,它们通过API相互通信并执行不同的任务。Uber为每个任务构建不同的服务:
- 旅客管理
- 乘客网页界面
- 开票管理
- 司机管理
- 驱动程序Web UI
- 付款管理
- 旅行管理
- 通知事项
微服务还可以通过体系架构图进行说明,其中一个微服务是通过API与另一服务通信的单个节点。随着将更多服务添加到系统上,体系结构可以发展壮大。可以想象,大型公司的微服务体系结构图可能像一个小城市一样庞大。以下是假设的Amazon和Netflix图形:
微服务依赖APIAPI
是一种通信工具,它使一个服务与另一个服务进行交互。API本身无法执行任何操作,除非它已连接到某些东西。当该API连接到服务和微服务时,它将变得很有用,例如:
- Function as a Service 函数服务
- Machine Learning as a Service 机器学习
- Software as a Service 软件服务
API是您可以将微服务分发给用户的方式。API无需下载软件,而是分发您的服务。API是微服务架构正常运行所必需的,因为API是其服务之间的通信工具。没有API,将会有很多断开的微服务。从技术上讲,微服务将再次构建为整体。
API如何运作的?
API非常通用。您可以:
- 在任何容器化服务上创建API
- 使用多种不同的语言Java、Python、Go等等
- 在任何云提供商上部署API
API可以提高服务的可用性和公开性。通过简化发行,您可以提供较小的服务。(毕竟,您不必为了证明可行性而构建整个应用所有服务)。
许多API都是RESTful的,并通过HTTP之类的端点公开。这意味着从API访问信息就像查验URL一样容易。GET、POST、PUT、DELETE命令与URL一起可以按预期工作,获取数据或将数据提供给API。尽管REST API在现代Web应用程序中最常见,但其他选项包括:
- RPC
- GraphQL
作为产品,API端点通常与开发门户一起提供,该门户告知开发人员如何使用它并为开发人员分配API密钥。如果微服务的目标是在提供注册车辆的数据,那么开发门户将解释:
- 服务的作用
- 数据的结构(即数据模式)
- 开发人员使用API的要求
大多数好的微服务都有某种类型的API。如果您希望使用微服务,那么您将创建一个API。