03 grpc-go环境说明、版本、网盘、QQ群、为什么学习grpc-go

已发表的技术专栏
0  grpc-go、protobuf、multus-cni 技术专栏 总入口

1  grpc-go 源码剖析与实战  文章目录

2  Protobuf介绍与实战 图文专栏  文章目录

3  multus-cni   文章目录(k8s多网络实现方案)

4  grpc、oauth2、openssl、双向认证、单向认证等专栏文章目录


在这里插入图片描述

1、为什么要分享学习gRPC-go源码?

1.1、从我个人的视角说

  • 一是,在设计我负责的项目中,底层使用的是微服务架构,微服务之间的通信涉及到grpc,因此,我希望自己能够对gRPC-go源码有更加清晰的认识,以便能够更好的为项目服务; 比方说,多个微服务间存在调用链关系时,如何设置超时机制?为了提高并发量,要不要设计rpc链接池,如何设计?等等,都是要考虑的事情。
  • 二是,希望能够帮助所需要的人;如果你的参与项目并没有很大的特色,如果在求职面试时你希望自己有技术亮点的话,如果你对go语言感兴趣,想继续提升go语言水平的话…,我想这篇专栏会帮助你。
  • 三是,我个人或者我们公司在招聘时,如果是高级工程师或者架构师等,也会问一下,有没有深入研究过优秀的开源源码。这也是能力的体现,当公司在招聘时,如果求职者有一项能力很出众,成功的可能性比较大。
  • 告别CRUD,对自己技能提升的投资

上了十几年的学,也工作五六年了,有一条失败经验就是,总想着一口吃个胖子,总想着有什么捷径可走,结果发现,浪费了很多时间,很多东西一知半解,没有形成系统,写这个专栏,也是希望勉励自己,能够沉下心来,踏踏实实的做一件事情;也希望能够将所学到的知识以专栏的形式呈现出来,不能让知识在大脑里睡觉;其实, 写专栏也是磨炼心情的过程!
也是,希望读者共勉之。谨记,别走老路。

1.2 从互联网公司的招聘要求里说

  打开招聘信息时,会发现很多公司对求职人员的技术要求之一,就是熟悉golang, grpc;甚至要求会二次开发,调试的能力; 因此,当我们有机会时,还是有必要去深入了解一下gRPC-go的源码。
在这里插入图片描述
在这里插入图片描述

2、阅读本专栏会有哪些收获

  • 可以了解gRPC-go的核心原理
  • 能够在简历上表明”熟读gRPC-go源码,具备对gRPC-go进行二次开发的能力,具备修改grpc-go源码的能力“
  • 能够学习到grpc-go框架是如何实现某个功能点,从而借用到自己的项目中去

等等
其实,最主要的是:

  • 减少了阅读gRPC-go源码的时间
  • 时间才是最宝贵的

3、每周更新多少篇

我会根据自己的工作时间,工作量大小,每周更新2~4篇文章;

4、 环境说明

本次采用的版本是grpc-go v1.30.0
Mac一台,Goland

会将专栏中涉及到的某些资料上传到百度网盘中,以方便大家阅读:
链接: https://pan.baidu.com/s/1za02qnUII78n-XhlrLf7RA
密码: 3tok

<<gRPC-go源码剖析与实战>>技术专栏交流群QQ:342498897
gRPC-go源码剖析与实战 百度网盘资料一
在这里插入图片描述
在这里插入图片描述


5、如何学习gRPC-go源码呢?

  • 希望大家能够沉下心来慢慢学习,对gRPC-go的源码的认识我保证不了类似于五天入门一个月精通,但是,如果你认认真真学习三个月,肯定会有不小的收获;
  • gRPC-go的源码有一定的难度,但也不是高不可攀,跟Kubernetes,Hadoop,spark等源码相比还是很简单的;对于大部分人来说,不可能翻阅两三遍就精通了;
  • 在学习中,如果发现某个知识点不理解的话,不用焦虑紧张,等过段时间,或者看完后续的文章后,再重新阅读时,就不是问题了。
  • 研究gRPC-go源码时经历了大量的测试,我主要是通过添加大量的测试日志,来发现各个功能点的核心原理的;
  • 如果你想了解到底是谁在调用某个方法时,方法之一,就是在被调用方法内部的开头打印一条错误日志,error级别的日志,会将调用链打印出来,可以从调用链里发现调用关系
  • 如果想查看某个方法,某个结构体等,在什么地方被调用了的话,最粗暴的方法就是,将这个方法,或者结构体等注释掉,然后再启动服务时,就会抛异常,然后再一个一个的去研究分析,可能会帮助你
  • 在研究滑动窗口(流量控制)时,研究其核心原理,有一个思路是,当改变某个参数时,一般情况下,肯定会产生一定的影响,这个参数的改变,会导致什么后果,是增加,还是减少;甚至会对其他参数产生一定的影响;
  • 等等

本专栏不会结束,将来如果有新的内容的话,还会继续添加进来的;
如,在建立rpc链接中的状态是如何设置的?
go语言中的上下文,事件,select,timer等知识点在gRPC-go框架是如何使用的;等等

至于,gRPC-go的简单介绍,如何使用,本专栏就不再叙述了,网上有很多文章写的很详细了,不再占用篇幅了。

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述


点击下面的图片,返回到 专栏大纲(目录)

gRPC-go源码剖析与实战之专栏大纲

您的每一次点赞,每一次关注,每一次收藏都是对我工作的最大支持,让我们开始 吧!
gRPC-go源码剖析与实战之点赞之交

gRPC-go源码剖析与实战感谢

  • 9
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
grpc-go是一款受欢迎的Go语言实现的高性能RPC框架,用于构建分布式系统。它基于Google的开源框架gRPC,并为Go语言提供了相应的接口和库。下面我将对grpc-go源码进行简要剖析。 在grpc-go源码中,最重要的是其核心组件:Transport、Balancer、Resolver和Server。Transport负责网络传输,提供基于TCP、HTTP/2和TLS的通信功能。Balancer用于负载均衡,可根据策略将请求分配到不同的服务节点。Resolver负责服务发现,帮助客户端找到可用的服务实例。Server则是用于接收和处理来自客户端的请求。 在Transport层,grpc-go使用了高效的HTTP/2协议作为底层通信协议。通过HTTP2Transport接口,它可以方便地与底层通信协议进行交互。此外,Transport还利用了框架提供的拦截器机制,可以实现一些额外的功能,比如认证、日志记录等。 在Server端,grpc-go提供了一个灵活的框架,可以通过定义服务接口和实现服务方法来处理请求。它还支持多种传输模式,包括独立的HTTP/2、TCP以及TLS加密等。Server还提供了流式调用和双向流式调用的支持,可以处理大量并行请求。 在Client端,grpc-go提供了方便的接口和功能,用于与服务端进行通信。客户端可以根据服务接口定义的方法来发起请求,并且可以设置超时时间、重试机制等。此外,客户端还支持流式和双向流式调用,可以实现高效的数据交互。 总结来说,grpc-go源码剖析主要集中在核心组件的实现,包括Transport、Balancer、Resolver和Server等。通过这些组件的协同工作,grpc-go能够实现高性能、高效的RPC通信。同时,grpc-go还提供了丰富的功能和接口,方便开发人员使用和扩展。通过理解grpc-go源码,开发人员可以更好地利用这个框架构建高效的分布式系统。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

码二哥

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

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

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

打赏作者

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

抵扣说明:

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

余额充值