name: grpc-protocol description: 用于gRPC协议实现、调试和性能优化的专家技能 allowed-tools:
- Bash
- Read
- Write
- Edit
- Glob
- Grep
gRPC协议技能
用于跨多种语言的gRPC协议实现、服务定义和调试的专家技能。
能力
- 服务定义:生成gRPC服务定义和Protocol Buffer模式
- 代码生成:为多种语言生成客户端和服务器存根
- 流式调试:调试一元、客户端流式、服务器流式和双向流式通信
- gRPC-Web兼容性:分析和配置用于浏览器客户端的gRPC-web
- 负载均衡:配置gRPC特定的负载均衡策略
- 拦截器:实现客户端和服务器拦截器以处理横切关注点
- 测试:使用grpcurl和其他调试工具测试gRPC服务
- 性能优化:优化gRPC性能,包括连接池和压缩
工具和依赖
protoc- Protocol Buffer编译器grpcurl- 命令行gRPC客户端grpc-web- 用于浏览器客户端的gRPCbuf- 现代Protocol Buffer工具evans- 交互式gRPC客户端
目标流程
- realtime-messaging-system.js (gRPC流式)
- custom-protocol-design.js (基于gRPC的协议)
- layer7-load-balancer.js (gRPC路由)
使用示例
服务定义
service Greeter {
rpc SayHello (HelloRequest) returns (HelloReply);
rpc SayHelloStream (HelloRequest) returns (stream HelloReply);
}
使用grpcurl测试
grpcurl -plaintext localhost:50051 list
grpcurl -plaintext -d '{"name": "World"}' localhost:50051 greeter.Greeter/SayHello
反射调试
grpcurl -plaintext localhost:50051 describe greeter.Greeter
质量门控
- Protocol Buffer模式验证
- 服务反射验证
- 流式流控测试
- 错误处理验证
- 性能基准测试