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

gRPC网络模型详解

gRPC协议框架

TCP层:底层通信协议,基于TCP连接。

TLS层:该层是可选的,基于TLS加密通道。

HTTP2层:gRPC承载在HTTP2协议上,利用了HTTP2的双向流、流控、头部压缩、单连接上的多 路复用请求等特性。

gRPC层:远程过程调用,定义了远程过程调用的协议交互格式。

编码层:gRPC通过编码格式承载数据,包括GPB(Google Protocol Buffer)编码格式。

数据模型层:业务模块的数据。通信双方需要了解彼此的数据模型,才能正确调用信息。当前设备提 供了订阅、配置、查询业务模块。 proto文件。

gRPC网络模型

grpc会启动多个线程的epoll来处理描述符,不管异步还是同步,每个epoll都对应一个线程。

同步模型

得益于SO_REUSEPORT参数,同一个listenfd可以被放到多个epoll中进行监听 当一个链接成功建立后会生成acceptfd,这个acceptfd会被随机的分配到现有的epoll中,目前grpc 的分配策略是轮询(round-robin)

min poller, max poller, 自动根据调用的请求的频次 进行自动伸缩poller。

异步模型

异步处理的epoll方式和同步是类似的,但对于rpc函数的响应提供了更灵活的处理机制,可以将一些耗 时的处理逻辑放到外部的线程池进行处理。

总结

gRPC 是一个高性能、开源的远程过程调用(RPC)框架,由 Google 开发并基于 HTTP/2 和 Protocol Buffers(protobuf)构建。它支持多种编程语言,适用于微服务、分布式系统等场景,提供高效的通信和跨语言兼容性。

更多资料在:https://github.com/0voice查询

http://www.xdnf.cn/news/18027.html

相关文章:

  • 从0开始学习Java+AI知识点总结-17.web基础知识(数据库)
  • ARM汇编代码新手入门
  • 【人工智能99问】残差链接是什么,是如何起作用的?(28/99)
  • C语言相关简单数据结构:双向链表
  • 影刀 RAP 迁移华为云备忘录数据到得到笔记
  • C++编程实战:高效解决算法与数据结构问题
  • Python多线程、锁、多进程、异步编程
  • 自动驾驶中的传感器技术34——Lidar(9)
  • Python训练营打卡Day35-复习日
  • 2025年5月架构设计师综合知识真题回顾,附参考答案、解析及所涉知识点(五)
  • Pandas 和 NumPy的区别和联系
  • 安卓开发中遇到Medium Phone API 36.0 is already running as process XXX.
  • RK3568平台开发系列讲解:PCIE trainning失败怎么办
  • 计算机网络 OSI 七层模型和 TCP 五层模型
  • day43_2025-08-17
  • git stash临时保存工作区
  • Talk2BEV论文速读
  • Next.js跟React关系(Next.js是基于React库的全栈框架)(文件系统路由、服务端渲染SSR、静态生成SSG、增量静态再生ISR、API路由)
  • 【Python】-- 机器学习项目 - 基于KNN算法的鸢尾花分类
  • 基于飞算JavaAI实现布隆过滤器防止缓存穿透:原理、实践与全流程解析
  • HTTP0.9/1.0/1.1/2.0
  • 免费照片压缩网站
  • Android原生(Kotlin)与Flutter混合开发 - 设备控制与状态同步解决方案
  • Visual Studio Code 基础设置指南
  • C++ 特殊类设计与单例模式解析
  • 云计算-K8s 实战:Pod、安全上下文、HPA 、CRD、网络策略、亲和性等功能配置实操指南
  • 天地图开发的优点
  • Leaflet赋能:WebGIS视角下的省域区县天气可视化实战攻略
  • PostgreSQL——用户管理
  • Dify 从入门到精通(第 38/100 篇):Dify 的实时协作功能