当前位置: 首页 > news >正文

gRPC众0到1系列【7】

文章目录

  • 一、gRPC四种通信方式
    • 1.1 gRPC通信方式概览
    • 1.2 一元RPC(Unary RPC)
    • 1.3 服务端流式 RPC(Server Streaming)
    • 1.4 客户端流式 RPC(Client Streaming)
    • 1.5 双向流式 RPC(Bidirectional Streaming)
    • 1.6 总结对比

一、gRPC四种通信方式

1.1 gRPC通信方式概览

在这里插入图片描述

1.2 一元RPC(Unary RPC)

📌 原理

  • 最简单的模式:客户端发送一个请求,服务端返回一个响应
  • 类似传统 REST API,但使用 protobuf + HTTP/2。
  • 底层:一个 HTTP/2 请求/响应对。

🧩 使用场景

  • 用户登录、查询用户信息、下单等“请求-响应”操作。
ClientServer一元RPC通信流程1. 发送单个请求接收请求并处理2. 业务处理3. 返回单个响应特点: 简单请求-响应类似HTTP REST APIClientServer

1.3 服务端流式 RPC(Server Streaming)

📌 原理

  • 客户端发送一个请求,服务端返回多个响应(流)。
  • 服务端通过 StreamObserver.onNext() 多次发送,最后调用 onCompleted()
  • 底层:一个请求,多个 DATA 帧(同一 HTTP/2 流)。

🧩 使用场景

  • 实时股票行情推送、日志订阅、传感器数据广播。
客户端服务端1. 发送一个请求 (SimpleRequest)开始处理并准备流式响应...2. 发送响应流消息 1 (StreamResponse)3. 发送响应流消息 2 (StreamResponse)4. 发送响应流消息 3 (StreamResponse)5. 发送流结束信号流结束,调用完成客户端服务端

1.4 客户端流式 RPC(Client Streaming)

📌 原理

  • 客户端发送多个请求,服务端返回一个响应
  • 客户端通过 StreamObserver 发送多个 onNext(),最后 onCompleted()
  • 服务端在 onCompleted() 回调中汇总结果并响应。

🧩 使用场景

  • 文件分片上传、批量数据提交、实时语音识别(客户端持续发送音频片段)。
客户端服务端1. 发送请求流消息 1 (StreamRequest)2. 发送请求流消息 2 (StreamRequest)3. 发送请求流消息 3 (StreamRequest)4. 发送流结束信号接收完所有请求,开始处理...5. 返回一个响应 (SimpleResponse)收到响应,调用完成客户端服务端

1.5 双向流式 RPC(Bidirectional Streaming)

📌 原理

  • 客户端和服务端均可随时发送多个消息,全双工通信。
  • 双方各自持有 StreamObserver,可独立调用 onNext()
  • 底层:HTTP/2 的双向流,天然支持。

🧩 使用场景

  • 聊天室、实时协作编辑、IoT 设备双向通信。
客户端服务端流可以同时进行,没有严格的顺序1. 客户端发送消息 A (ChatMessage)2. 服务端回复消息 B (ChatMessage)3. 客户端发送消息 C (ChatMessage)4. 服务端回复消息 D (ChatMessage)5. 客户端关闭发送流6. 服务端关闭发送流RPC 调用结束客户端服务端

1.6 总结对比

通信类型客户端请求服务端响应Java Stub 类型典型场景
Unary1 次1 次BlockingStub登录、查询
Server Streaming1 次N 次BlockingStub(返回 Iterator)实时推送
Client StreamingN 次1 次AsyncStub(回调)批量上传
Bidirectional StreamingN 次N 次AsyncStub(双向回调)聊天、协作
http://www.dtcms.com/a/424023.html

相关文章:

  • 计算机网络技专业术网站开发怎样制作公司的网页
  • 【完整源码+数据集+部署教程】微生物菌落图像分割系统: yolov8-seg-slimneck
  • jsp做网站怎么打开玩游戏的网页
  • 个人备案域名可以做企业网站吗dedecms手机网站插件
  • 苹果上架 App 全流程详解,iOS 应用发布步骤、ipa 文件上传工具、TestFlight 测试与 App Store 审核经验
  • 网站建设中模版靖江做网站的单位
  • 协会网站信息平台建设住房和城乡建设部网站
  • 整站优化哪家专业天府健康通二维码图片高清下载
  • 静态网站是什么怎么做网站登录站
  • AI大模型是怎么工作的?从石头分类说起
  • 苹果群控系统如何做到游戏数据精准采集
  • 分布式任务调度系统中的线程池使用详解
  • pc开奖网站开发濮阳建网站
  • JWT token 简要介绍以及使用场景和案例
  • 网站在线留言怎么做行政法规
  • 语义网络(Semantic Net)对人工智能中自然语言处理的深层语义分析的影响与启示
  • 南通网站建设优化网站建设服务器配置
  • “AI+“行动下的可控智能体:GPT-5 与 GPT-OSS 高性能推理 安全可控 产业落地 GPT-OSS 一可控AI目前全球唯一开源解决方案
  • 零基础网站建设视频想做一个自己的网站怎么做
  • UWB实操:使用litepoint测试FCC 1ms PSD功率谱密度
  • 企业网站自己可以做吗工作室做什么项目好
  • 商丘做网站的电话怎样做自己公司的网站
  • 复旦华为提出首个空间理解和生成统一框架UniUGG,支持参考图像和任意视图变换的 3D 场景生成和空间视觉问答 (VQA) 任务。
  • InnoDB与MySQL复制的关键注意事项
  • 【python】五个容器
  • 网站后台信息发布这样做利用html做博客网站
  • SSM数字图书馆on33n(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
  • 网站开发项目团队人员易车网汽车之家
  • 个人建站公司好看个人网页模板
  • 高端网站建设 源码wordpress去log