gRPC主要特点

核心功能

  • 提供C/S架构中的通信能力(包括流式传输),使用了比 JSON、XML 更优的对象序列化协议 protobuf。

    基于HTTP/2,支持一元 RPC、服务器流式 RPC 、客户端流式 RPC、双向流式 RPC;

    • 双向流式 RPC,双方使用读写流发送一系列消息。两个流独立运行,因此客户端和服务器可以按任意顺序进行读写:例如,服务器可以等待接收所有客户端消息后再写入响应,也可以交替读取消息然后写入消息,或者采用其他读写组合。每个流中的消息顺序都会保留。

      proto 复制代码
      rpc BidiHello(stream HelloRequest) returns (stream HelloResponse);
  • gRPC-Web功能:支持浏览器与gRPC服务端进行通信(只需额外配置Envoy proxy即可完成gRPC-Web到gRPC的转换)

  • 可插拔设计(Pluggable):支持负载平衡、链路追踪、健康检查和身份验证

官网原话(https://grpc.io/about/#core-features-that-make-it-awesome)

  • Idiomatic client libraries in 11 languages
  • Highly efficient on wire and with a simple service definition framework
  • Bi-directional streaming with http/2 based transport
  • Pluggable auth, tracing, load balancing and health checking

IDL

Interface Definition Language

使用protocol buffer作为IDL.

ProtoBuf在gRPC的框架中主要有三个作用:

  • 定义数据结构
  • 定义服务接口
  • 通过序列化和反序列化,提升传输效率

可插拔设计(Pluggable)

(尚未书写)

负载均衡

官网:https://grpc.io/blog/grpc-load-balancing/#load-balancing-options

介绍了两类常见的负载均衡方式:

对于不同业务场景,推荐了不同的方式:https://grpc.io/blog/grpc-load-balancing/#recommendations-and-best-practices。

gRPC 目前支持自己的grpc-LB协议 ,用于后备负载平衡(lookaside-load-balancing)。但是,流行的Envoy代理使用xDS API 进行多种类型的配置,包括负载平衡,并且该 API 正在发展成为一种标准,将用于配置各种数据平面软件。为了顺应这一行业趋势,gRPC 将从其原始的 grpc-LB 协议转移到新的 xDS 协议。

gRPC 提供了许多 LB 策略。最值得注意的是pick_first(默认,首个符合,即无配置)、round_robin(顺序分配)和 grpclb(已废弃)。还有许多其他 LB 策略来支持 xDS,尽管它们目前无法直接配置。

workflow

相关推荐
搬码临时工9 小时前
有公网ip还要端口映射不?只有内网ip怎么做映射端口到外网访问?
网络·网络协议·tcp/ip
Wgllss9 小时前
完整案例:Kotlin+Compose+Multiplatform跨平台之桌面端实现(一)
android·架构·android jetpack
秋田君11 小时前
Vue3 + WebSocket网页接入弹窗客服功能的完整实现
前端·javascript·websocket·网络协议·学习
伽蓝_游戏11 小时前
Unity UI的未来之路:从UGUI到UI Toolkit的架构演进与特性剖析(6)
游戏·ui·unity·架构·c#·游戏引擎·.net
文火冰糖的硅基工坊13 小时前
[硬件电路-138]:模拟电路 - 什么是正电源?什么是负电源?集成运放为什么有VCC+和VCC-
单片机·嵌入式硬件·架构·电路·运放·跨学科融合
Running_slave13 小时前
TLS/SSL协议加密通信原理趣解
网络协议·面试·https
经典199214 小时前
从单体到分布式:解锁架构进化密码
分布式·架构
未来之窗软件服务14 小时前
企业自动化交互体系的技术架构与实现:从智能回复到自动评论—仙盟创梦IDE
架构·自动化·交互·仙盟创梦ide·东方仙盟
火车叨位去194914 小时前
IM即时通讯系统面试准备(一)——websocket
网络·websocket·网络协议
文火冰糖的硅基工坊14 小时前
[硬件电路-123]:模拟电路 - 信号处理电路 - 常见的高速运放芯片、典型电路、电路实施注意事项
嵌入式硬件·架构·信号处理·电路·跨学科融合