grpc-go源码剖析三十二之grpc服务器端处理客户端请求的整体流程

本小节主要分析一下,当服务器端接收到客户端的请求后,服务器端的整体流程是怎么处理的。
  先从整体的角度去了解,然后再慢慢细化。

1、grpc服务器端处理grpc客户端的整体流程介绍

直接上图,整体流程处理图:
grpc服务器端整体处理客户端的请求处理流程

主要流程如下:

  • 客户端跟服务器端发起rpc链接请求,双方链接建立后
  • 客户端向服务器端发起多次服务请求,如客户端本地调用多次SayHello方法
  • 服务器端接收到客户端的请求后,会创建一个协程,来专门处理
  • 在此协程里,会创建ServiceTransport,即http2Server; http2Server创建好,基本上标志着双方底层已经建立好了链接。
  • 使用协程的方式创建一个帧发送器
  • 使用http2Server启动帧接收器,在帧接收器里可以处理多种类型的帧。
  • 帧接收器接收到客户端的头帧后,对头帧进行解析,获得协议字段,如grpc-timeout,context-type, grpc-encoding等,有了协议字段,就可以知道如何读取数据了,比方说,将获取到的数据根据grpc-encoding进行解压,客户端调用服务器的哪个方法等
  • 从头帧里可以获取到流ID,然后创建流,创建流的同时,需要创建一个缓
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值