通过APIG创建GRPC API
API网关支持创建GRPC API。gRPC是RPC(远程过程调用)的一种,只需定义每个API的Request和Response,剩下的gRPC框架就可以完成。它的典型特征就是使用protobuf(protocol buffers)作为其接口定义语言(Interface Definition Language,缩写IDL),同时底层的消息交换格式也是使用protobuf。下表列出了GRPC API与REST API的区别:
参数 |
GRPC |
REST |
---|---|---|
消息编码 |
protobuf |
JSON |
传输协议 |
HTTP/2 |
HTTP |
传输性能 |
传输内容少,速度快 |
传输内容多 |
传输形式 |
发送单个请求,接收单个响应。 |
当您的客户端和服务端都为GRPC类型时,可以通过创建GRPC类型的API来开放后端能力。GRPC适用于内部服务的调用,性能消耗低,传输率高,便于服务治理。
使用限制
- 不支持API管理模块中的导入导出API功能、导入API设计文件、导入CSE微服务功能、导入CCE工作负载功能、调试API功能。
- 不支持后端降级策略中后端策略类型为Mock、HTTP&HTTPS、FunctionGraph的断路器策略。
前提条件
操作步骤
- 进入API网关控制台页面。
- 根据实际业务在左侧导航栏上方选择实例。
- 在左侧导航栏选择“API管理 > API分组”。
- 单击分组名称。
- 在“API运行”页面,单击“创建API > 创建GRPC API”。
- 配置前端定义请参考5.a。
GRPC API前端定义的“请求方法”和“请求协议”默认为“POST”和“GRPCS”。
GRPC API前端定义的“路径”需要根据实际业务从以下三种配置方式中选择配置:- /
- /{包名}.{服务名}
- /{包名}.{服务名}/{方法名}
- 包名、服务名、方法名从proto文件中获取。
- 当前端路径设置“/{包名}.{服务名}/{方法名}”时,API的匹配模式才可以使用“绝对匹配”。
- 不支持Base64编码配置。
- 安全配置请参考5.b。
- 单击“下一步”。
- 配置默认后端请参考1。
GRPC API的后端服务类型支持“GRPC&GRPCS”和“FunctionGraph”两种类型。
- 后端服务类型为“GRPC&GRPCS”时,“请求方法”和“路径”,分别默认为“POST”和“/”,“请求协议”支持“GRPC”或“GRPCS”,且不支持“参数编排”。
- 后端服务类型为“FunctionGraph”时,“网络架构”和“调用类型”默认为“V2”和“Synchronous”,且不支持“参数编排”。
GRPC API的后端FunctionGraph类型,当前仅贵阳一、上海一、北京四、上海二、圣地亚哥区域支持。
- (可选)添加策略后端请参考5。
(可选)为API添加策略
发布API后,方可添加策略。
- 在“API运行”页面,单击“添加策略”。
- 选择策略类型,配置策略。
- 选择已有策略:单击“选择已有策略”后,选择策略。
- 创建新策略:请参考配置API策略。
- 单击“确定”,完成策略的创建。