写点什么

这一次,带你玩转 gRPC 框架

作者:海风极客
  • 2023-04-16
    北京
  • 本文字数:1932 字

    阅读完需:约 6 分钟

这一次,带你玩转gRPC框架

前言

大家好,先做一下自我介绍


我叫 Barry Yan,目前是一名互联网公司的研发工程师,同时也是后端技术领域的狂热爱好者和技术博主,在 GitHub、CSDN 社区、51CTO 博客社区、阿里云技术社区、掘金技术社区和 InfoQ 写作社区等都有自己的博客,原创 200 余篇。虽然刚刚大学本科毕业不到一年,但是算上实习经历的话大概有一年多的工作经验了,并且接触了一些不同的的编程语言和技术栈,对 Java 语言和相关技术栈如 Spring、Tomcat、Netty、Zookeeper,Go 语言和相关技术栈如 Docker、gRPC、Gin、etcd 都可以说比较熟悉。


为什么要写这个专栏。


在 Go 语言的相关学习中,发现确实如一些网友所说,Go 相比 Java,语言生态方面还是有一定的弱势的,因此相关技术栈的学习资料、对解决问题的经验分享等内容在互联网上相比 Java 都不是特别的多,而我本人则是更偏向于做一个内容生产者,写出优质的内容丰富社区,并且能让更多的人去了解,同时也能丰富自己,让自己对这一门技术理解的更加深刻,所以就想在业余休息的时间,从 Go 语言开发中非常常见的 gRPC 框架入手,完成一套属于自己的专栏!这个选择是经过深思熟虑的,我相信自己在创作专栏的过程中能够有一些不同的成长,能够让读者朋友有实实在在的收获,让社区多一些更好的内容。


我们为什么要学习 gRPC?


当今的无论是传统软件领域还是互联网领域,各种新技术层出不穷,覆盖的用户量规模也越来越广泛,随之而来的是架构思想的不断转变,从单体架构到 SOA,到微服务再到"无服务",分布式技术越发常见且重要,而自从单体架构之后的分布式架构,都会设计到服务之间的信息传输,而信息传输的方式主要是通过网络,更详细一点是 TCP 网络协议,但是应用之间很少会直接使用 TCP 协议进行传输,而是选择更上层的网络协议,比如 HTTP、Socket、RPC 等等,因为越往上层就意味着封装了更多的抽象,便于开发人员对其进行使用,而 PRC 相关的框架,无论是在性能上还是便捷性上都是服务到服务之前进行信息传输的最优选项,而 gRPC 框架则是所有 RPC 框架中各方面最为突出的框架之一。


gRPC 是 Google 发布的基于 HTTP2.0 协议的高性能开源 RPC 框架,是一种可拓展、松耦合且类型安全的解决方案,与传统的基于 HTTP 的通信相比,它能进行更有效的进程间通信,特别是现在流行的微服务架构和云原生技术里,在很多框架里都能看到它的身影存在,并且提供了多种编程语言的支持。本篇专栏,从最简单的 Hello World 程序开始,从认识到应用,从编写程序到剖析源码,从全局到细节,和大家一起去掌握 gRPC。


学习专栏前最好要具备一些基础知识


  • Go、Java 语言的编程基础

  • 计算机网络知识

  • Git 工具的使用

专栏目录


专栏除了开篇词和结束语以外总共分为四个部分,分别是基础篇实践篇高级篇扩展篇

基础篇

在基础篇的文章中,我会从计算机网络中的 TCP 协议开始,讲述 RPC 协议和相关框架实现的演进过程,分析 RPC 为什么一定会出现,并且了解 gRPC 是怎样的 RPC 框架和 gRPC 的一些特性,从宏观的角度去了解 gRPC 框架在具体使用中的通信过程,能够让我们了解 gRPC 的基本概念和适用的场景。

实践篇

了解 gRPC 框架的基本情况之后,我们从实践出发,对 gRPC 进行进一步的使用,并且引入 etcd 服务注册中心,了解 gRPC 在分布式微服务领域的应用,还要从获取连接、负载均衡、异步处理、并发、安全、可用性等多个方面去了解 gRPC 的部分原理和源码,学习完这一篇之后相信大家就可以在项目中灵活的使用 gRPC 框架,并且能够处理大部分的问题。

高级篇

在这一篇中,我会尝试带你深入 gRPC 原理和几个性能优化的要点,回归网络去了解 HTTP2.0,以及不常用但是也很重要的 UnknownService 机制,最后尝试去实现我们自己的 RPC 框架,在这一篇的学习中,我们可以对 gRPC 进行更加深入的掌握,在项目中的使用和优化能够游刃有余。

扩展篇

扩展篇的几篇文章,能够为我们带来实践经验、源码、思考和相关联组件的多方位知识,了解和实践不同语言的项目中使用 gRPC,分享一下 gRPC 源码中的一些优雅设计和一些在实际使用过程中所遇到的一些问题和解决方式,讨论 gRPC 有哪些优势和不足,这些往往能够提升我们深度思考的能力。

最后

《玩转 gRPC 框架》这篇专栏可以说是我技术成长之路上的第一个专栏,在写作的同时也是在学习,作为一名技术人,面对写作这件事我认为最重要的就是热爱,而我也在保持热爱。在业余的时间里能够保持一个自己的爱好并坚持下去,对我们每一名技术人的成长也都是非常有帮助的。或许相比一线经验丰富的前辈来讲,我对 gRPC 这项技术的掌握并不是十分到位,对它的分析和理解也不是十分的深刻,写出的博客也可能不是十分的行云流水,但是我仍然热爱,仍然想做,仍然能够去做,并且能在自己的能力范围之内做到最好,就没有什么可怀疑的了。


最后,我想谨以此专栏由衷的感谢在我成长过程中遇到的每一位老师的教导与帮助,同时也感谢每一位读者的支持!

发布于: 刚刚阅读数: 6
用户头像

海风极客

关注

做兴趣使然的Hero 2021-01-14 加入

Just do it.

评论 (1 条评论)

发布
没有更多了
这一次,带你玩转gRPC框架_gRPC_海风极客_InfoQ写作社区