grpc-go源码剖析二十六之头帧是如何发送出去的呢?

本文深入剖析了grpc-go客户端头帧发送的过程,从创建头帧到通过帧发送器发送,包括帧缓存、帧加载器、帧分发器和头帧处理器的工作原理。在http2_client.go文件中,详细解释了NewStream方法、headerHandler方法以及initStream方法如何协同确保头帧正确发送,并在发送成功后将outStream注册到帧发送器缓存。
摘要由CSDN通过智能技术生成

本小节我们重点分析一下,头帧处理器的原理,即如何将头帧发送出去?

1、客户端一侧,头帧的整体处理流程介绍

可以从下图中,了解客户端一侧,帧发送器处理头帧的整体处理流程:
在这里插入图片描述
主要流程说明:

  • 创建好头帧后,调用帧存储executeAndPut方法,将头帧存储到帧缓存controlBuf里;
  • 帧发送器工作介绍:
    • a)帧加载器从帧缓存里获取到头帧
    • b)帧分发器根据帧的类型,将头帧分发给头帧处理器处理
    • c)头帧处理器介绍:
      • i.创建outStream
      • ii.将头帧添加到outStream里的itemList类型的链表的尾部
      • iii.调用头帧的initStream
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

码二哥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值