系统性能调优必知必会
陶辉
智链达CTO、前阿里云高级技术专家
立即订阅
4770 人已学习
课程目录
已更新 22 讲 / 共 34 讲
0/4登录后,你可以任选4讲全文学习。
开篇词 (1讲)
开篇词 | 万变不离其宗,性能优化也有章可循
免费
基础设施优化 (6讲)
01 | CPU缓存:怎样写代码能够让CPU执行得更快?
02 | 内存池:如何提升内存分配的效率?
03 | 索引:如何用哈希表管理亿级对象?
04 | 零拷贝:如何高效地传输文件?
05 | 协程:如何快速地实现高并发服务?
06 | 锁:如何根据业务场景选择合适的锁?
系统层网络优化 (7讲)
07 | 性能好,效率高的一对多通讯该如何实现?
08 | 事件驱动:C10M是如何实现的?
09 | 如何提升TCP三次握手的性能?
10 | 如何提升TCP四次挥手的性能?
11 | 如何修改TCP缓冲区才能兼顾并发数量与传输速度?
12 | 如何调整TCP拥塞控制的性能?
13 | 实战:单机如何实现管理百万主机的心跳服务?
应用层编解码优化 (5讲)
14 | 优化TLS/SSL性能该从何下手?
15 | 如何提升HTTP/1.1性能?
16 | HTTP/2是怎样提升性能的?
17 | Protobuf是如何进一步提高编码效率的?
18 | 如何通过gRPC实现高效远程过程调用?
期中考试周 (3讲)
期中考试|行至半程,你的收获如何呢?
加餐1|特别福利:陶辉视频课精选
加餐2 |答疑精选:这些问题你都清楚吗?
系统性能调优必知必会
15
15
1.0x
00:00/00:00
登录|注册

18 | 如何通过gRPC实现高效远程过程调用?

陶辉 2020-06-15
你好,我是陶辉。
这一讲我们将以一个实战案例,基于前两讲提到的 HTTP/2 和 ProtoBuf 协议,看看 gRPC 如何将结构化消息编码为网络报文。
直接操作网络协议编程,容易让业务开发过程陷入复杂的网络处理细节。RPC 框架以编程语言中的本地函数调用形式,向应用开发者提供网络访问能力,这既封装了消息的编解码,也通过线程模型封装了多路复用,对业务开发很友好。
其中,Google 推出的 gRPC 是性能最好的 RPC 框架之一,它支持 Java、Javascript、Python、GoLang、C++、Object-C、Android、Ruby 等多种编程语言,还支持安全验证等特性,得到了广泛的应用,比如微服务中的 Envoy、分布式机器学习中的 Tensorflow,甚至华为去年推出重构互联网的 New IP 技术,都使用了 gRPC 框架。
然而,网络上教你使用 gRPC 框架的教程很多,却很少去谈 gRPC 是如何编码消息的。这样,一旦在大型分布式系统中出现疑难杂症,需要通过网络报文去定位问题发生在哪个系统、主机、进程中时,你就会毫无头绪。即使我们掌握了 HTTP/2 和 Protobuf 协议,但若不清楚 gRPC 的编码规则,还是无法分析抓取到的 gRPC 报文。而且,gRPC 支持单向、双向的流式 RPC 调用,编程相对复杂一些,定位流式 RPC 调用引发的 bug 时,更需要我们掌握 gRPC 的编码原理。
取消
完成
0/1000字
划线
笔记
复制
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
该试读文章来自付费专栏《系统性能调优必知必会》,如需阅读全部文章,
请订阅文章所属专栏。
立即订阅
登录 后留言

精选留言(4)

  • 唐朝首都
    基本原理+工具使用,理论结合实践才能把这些协议搞清楚呀!

    作者回复: 没错!

    2020-06-16
  • 小美
    从http1.1 升级到 http2.0 要哪些地方改造呢,就改个versionCode 吗
    2020-06-15
  • 远方的风
    老师的广度和深度是如何练成的呢,是看书,还是实际工作中都有涉及?一开始搞web开发的,对底层这些研究的就没这么深了

    作者回复: 你好远方的风,不用着急,能问出这问题,就表示你在朝这个方向进发,它需要时间。
    我建议这么加快速度:在实践中遇到问题时,多问自己几个为什么,就会顺着捋下来。在这个过程中,有些超过自己边界的问题,必须要增加广度,才能搞明白“为什么”。
    比如做gRPC应用开发时,如果想搞明白gRPC为什么可以生成stub代码,就得先增加广度去学一学编译原理

    2020-06-15
  • 安排
    client流模式中是不是每一个rpc请求消息的第一个data帧中才有Length-Prefixed Message ,然后下一个data帧只有protobuf数据,直到这个rpc请求消息发完。然后同一个stream上的下一个rpc消息的第一个data帧再加入Length-Prefixed Message 。以此类推。
    2020-06-15
    1
收起评论
4
返回
顶部