Clarifai API 为您提供加密的 gRPC 通道以及用于发出请求的 HTTPS+JSON 通道。为什么有不同的选择?了解使用基于 gRPC 构建的 Clarifai API 的诸多便利优势。我们最初为什么要在 gRPC 上构建 API ?#
Clarifai gRPC 旨在提供轻量级微服务。这是 Clarifai Amada 能够加载和平衡数千个不同机器学习模型实例并大规模交付 MLOps 的关键之一。凭借低延迟和高吞吐量的通信,我们可以为您提供高性能的机器学习服务,无论您身在何处。Clarifai 还使用 gRPC 来减少网络限制。我们的 API 消息使用 Protobuf 进行序列化,Protobuf 是一种紧凑的二进制(尽管非人类可读)消息格式,始终小于等效的 JSON。gRPC Protobuf 在服务器和客户端上的序列化速度非常快。gRPC 专为 HTTP/2 设计,HTTP/2 是 HTTP 的主要修订版本,与 HTTP 相比具有显着的性能优势。HTTP/2 协议在发送和接收消息时都很高效。HTTP/2 还允许通过单个 TCP 连接复用多个 HTTP/2 调用,从而消除了队头阻塞。干净的代码和资源管理#
关于如何使用 JSON 构建 HTTP API 根本没有正式的定义,并且关于 URL、HTTP 动词和响应代码的最佳格式一直存在争论。gRPC 规范规定了 gRPC 服务必须遵循的格式,这意味着跨平台和实现的行为是一致的。由于 gRPC 还允许客户端指定他们愿意等待 RPC 完成的时间,因此资源管理也变得更加容易。截止日期被发送到服务器,并且服务器能够“超时”正在进行的 gRPC/HTTP/数据库请求。Clarifai 是一个全球性的多语言组织。我们为我们的模型提供多语言支持,我们的 API 也是“多语言”的。Clarifai 利用 gRPC 工具支持所有流行的开发语言这一事实,我们为客户提供许多最流行的编程语言。客户端的代码生成创建了强类型客户端,并消除了客户端和服务器上的消息重复。Clarifai 自动从 gRPC 服务创建 RESTful JSON Web API。这使我们能够同时支持 gRPC 和 JSON Web API,而无需重复为两者构建单独的服务。许多有前途的机器学习用例都需要双向实时通信。gRPC 提供对双向流的支持,允许 gRPC 服务实时推送消息而无需轮询。使用我们的 gRPC 客户端时,本机支持所有流组合:一元(无流)、服务器到客户端流、客户端到服务器流和双向流。何时使用 HTTP通道#
我们建议大多数客户在大多数用例中使用加密的 gRPC 通道,但 HTTP+JSON 通道确实有其优点:许多开发人员都会熟悉使用 RESTful JSON Web API。在这些情况下,您可能需要评估开发时间和 gRPC 通道提供的额外性能之间的权衡。如今从浏览器直接调用 gRPC 服务是不可能的。gRPC 使用目 前主流浏览器不支持的 HTTP/2 功能。HTTP API 请求以文本形式发送,可供人类读取和创建。默认情况下,gRPC 消息使用 Protobuf 进行编码。虽然序列化 Protobuf 更高效且有效负载更小,但其二进制格式不是人类可读的。需要额外的工具来分析 Protobuf 有效负载并手动编写请求。 修改于 2023-12-11 06:59:08