go grpc 设置返回头信息_从实践到原理,带你参透 gRPC(一)

本文深入探讨了gRPC在Go中的应用,详细介绍了gRPC的调用模型,包括Unary RPC、Server-side streaming RPC、Client-side streaming RPC和Bidirectional streaming RPC。通过HTTP/2抓包分析了gRPC请求过程中的关键步骤,如Magic、SETTINGS、HEADERS和DATA帧,揭示了gRPC在流控制、状态响应和连接保持等方面的工作原理。
摘要由CSDN通过智能技术生成

Go语言中文网,致力于每日分享编码知识,欢迎关注我,会有意想不到的收获!

9e6992f3bab8a49ef1514f3a5a2fe7ff.png

gRPC 在 Go 语言中大放异彩,越来越多的小伙伴在使用,最近也在公司安利了一波,希望这一篇文章能带你一览 gRPC 的巧妙之处,本文篇幅比较长,请做好阅读准备。本文目录如下:

a9ba7813484d7a8b7c6b7c6d61e051a3.png

简述

gRPC 是一个高性能、开源和通用的 RPC 框架,面向移动和 HTTP/2 设计。目前提供 C、Java 和 Go 语言版本,分别是:grpc, grpc-java, grpc-go. 其中 C 版本支持 C, C++, Node.js, Python, Ruby, Objective-C, PHP 和 C# 支持。

gRPC 基于 HTTP/2 标准设计,带来诸如双向流、流控、头部压缩、单 TCP 连接上的多复用请求等特性。这些特性使得其在移动设备上表现更好,更省电和节省空间占用。

调用模型

1、客户端(gRPC Stub)调用 A 方法,发起 RPC 调用。

2、对请求信息使用 Protobuf 进行对象序列化压缩(IDL)。

3、服务端(gRPC Server)接收到请求后,解码请求体,进行业务逻辑处理并返回。

4、对响应结果使用 Protobuf 进行对象序列化压缩(IDL)。

5、客户端接受到服务端响应,解码请求体。回调被调用的 A 方法,唤醒正在等待响应(阻塞)的客户端调用并返回响应结果。

调用方式

一、Unary RPC:一元 RPC

ac40f6b326b83e488b21f5766cb76653.png

Server

f35f461f1e9550a5e347a125c449f2b9.png
  • 创建 gRPC Ser
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值