核心观点与关键数据
什么是 gRPC?
- gRPC 是由 Google 创建的用于微服务的语言独立粘合剂,最初用于连接 Google 的微服务。
- 使用 Protobuf 作为有效负载,并基于 HTTP/2 协议传输。
- 服务网格中的 gRPC 通过代理(如 Envoy)转发请求,应用服务网格策略。
服务网格中的无代理 gRPC
- 无代理 gRPC 将代理功能集成到 gRPC 协议中,消除代理以减少延迟和资源使用。
- gRPC 客户端和服务器分别应用服务网关策略于出站和入站流量,实现服务间直接通信。
使用 xDS 的服务网格
- xDS 数据平面 API 为 Envoy 代理开发,开放、可扩展且支持 gRPC 服务网格实现。
- xDS 包括监听器、路由、集群和端点等配置,用于服务发现和路由。
使用 xDS 配置无代理 gRPC
- 通过 XdsChannelCredentials 和 XdsServerCredentials 实现客户端和服务器端的 xDS 配置。
- 动态证书加载和 mTLS 配置确保安全通信。
无代理 gRPC 的性能增益
- 延迟降低 10-20 倍,尤其在连接数量上升时。
- 资源使用显著减少:sidecar 中 vCPU 使用量不到 Envoy 的情况的 1%,内存使用量不到一半。
未来发展
- 全面支持多种编程语言(Go、C++、Python、Java 等)。
- Istio/ASM 可观测性支持,包括元数据、日志、分布式跟踪和可视化服务图。
完全无代理架构
资源与参考
- gRFC L74、A29、A27、A36、A41 等文档提供详细技术规范。
- Google 博客和 Istio 博客提供相关技术文章和案例研究。