更新时间:2024-11-27 GMT+08:00

通过APIG创建GRPC API

API网关支持创建GRPC API。gRPC是RPC(远程过程调用)的一种,只需定义每个API的Request和Response,剩下的gRPC框架就可以完成。它的典型特征就是使用protobuf(protocol buffers)作为其接口定义语言(Interface Definition Language,缩写IDL),同时底层的消息交换格式也是使用protobuf。下表列出了GRPC API与REST API的区别:

表1 GRPC VS REST

参数

GRPC

REST

消息编码

protobuf

JSON

传输协议

HTTP/2

HTTP

传输性能

传输内容少,速度快

传输内容多

传输形式

  • 简单 RPC(Unary RPC)

    发送单个请求,接收单个响应。

  • 服务端流式 RPC (Server streaming RPC)

    发送单个请求,接收多个响应。

  • 客户端流式 RPC (Client streaming RPC)

    发送多个请求,接收单个响应。

  • 双向流式 RPC(Bi-directional streaming RPC)

    发送多个请求,接收多个响应。

发送单个请求,接收单个响应。

当您的客户端和服务端都为GRPC类型时,可以通过创建GRPC类型的API来开放后端能力。GRPC适用于内部服务的调用,性能消耗低,传输率高,便于服务治理。

使用限制

  • 不支持API管理模块中的导入导出API功能、导入API设计文件、导入CSE微服务功能、导入CCE工作负载功能、调试API功能。
  • 不支持后端降级策略中后端策略类型为Mock、HTTP&HTTPS、FunctionGraph的断路器策略。

前提条件

  • 已创建API分组。如果未创建API分组,请创建API分组
  • 如果后端服务需要使用负载通道,请创建负载通道
  • 后端服务已定义proto文件,即在proto文件中定义API的Request和Response。proto文件是用于定义数据结构和服务接口的文件,通常在gRPC中使用。它基于Protobuf语言,用于描述数据的结构和交互方式,充当客户端和后端服务之间通信的合同。

操作步骤

  1. 进入API网关控制台页面。
  2. 根据实际业务在左侧导航栏上方选择实例。
  1. 在左侧导航栏选择“API管理 > API分组”。
  2. 单击分组名称
  3. 在“API运行”页面,单击“创建API > 创建GRPC API”。
  4. 配置前端定义请参考5.a

    GRPC API前端定义的“请求方法”和“请求协议”默认为“POST”和“GRPCS”。

    GRPC API前端定义的“路径”需要根据实际业务从以下三种配置方式中选择配置:
    • /
    • /{包名}.{服务名}
    • /{包名}.{服务名}/{方法名}
    • 包名、服务名、方法名从proto文件中获取。
    • 当前端路径设置“/{包名}.{服务名}/{方法名}”时,API的匹配模式才可以使用“绝对匹配”。
    • 不支持Base64编码配置。

  5. 安全配置请参考5.b
  6. 单击“下一步”。
  7. 配置默认后端请参考1

    GRPC API的后端服务类型支持“GRPC&GRPCS”和“FunctionGraph”两种类型。
    • 后端服务类型为“GRPC&GRPCS”时,“请求方法”和“路径”,分别默认为“POST”和“/”,“请求协议”支持“GRPC”或“GRPCS”,且不支持“参数编排”。
    • 后端服务类型为“FunctionGraph”时,“网络架构”和“调用类型”默认为“V2”和“Synchronous”,且不支持“参数编排”。

      GRPC API的后端FunctionGraph类型,当前仅贵阳一、上海一、北京四、上海二、圣地亚哥区域支持。

  8. (可选)添加策略后端请参考5

(可选)为API添加策略

发布API后,方可添加策略。

  1. 在“API运行”页面,单击“添加策略”。
  2. 选择策略类型,配置策略。

    • 选择已有策略:单击“选择已有策略”后,选择策略。
    • 创建新策略:请参考配置API策略

  3. 单击“确定”,完成策略的创建。