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

2024-06-12 13:08

本文主要是介绍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源码剖析与实战感谢

这篇关于03 grpc-go环境说明、版本、网盘、QQ群、为什么学习grpc-go的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1054300

相关文章

Unity新手入门学习殿堂级知识详细讲解(图文)

《Unity新手入门学习殿堂级知识详细讲解(图文)》Unity是一款跨平台游戏引擎,支持2D/3D及VR/AR开发,核心功能模块包括图形、音频、物理等,通过可视化编辑器与脚本扩展实现开发,项目结构含A... 目录入门概述什么是 UnityUnity引擎基础认知编辑器核心操作Unity 编辑器项目模式分类工程

Go语言连接MySQL数据库执行基本的增删改查

《Go语言连接MySQL数据库执行基本的增删改查》在后端开发中,MySQL是最常用的关系型数据库之一,本文主要为大家详细介绍了如何使用Go连接MySQL数据库并执行基本的增删改查吧... 目录Go语言连接mysql数据库准备工作安装 MySQL 驱动代码实现运行结果注意事项Go语言执行基本的增删改查准备工作

Springboot项目构建时各种依赖详细介绍与依赖关系说明详解

《Springboot项目构建时各种依赖详细介绍与依赖关系说明详解》SpringBoot通过spring-boot-dependencies统一依赖版本管理,spring-boot-starter-w... 目录一、spring-boot-dependencies1.简介2. 内容概览3.核心内容结构4.

Go中select多路复用的实现示例

《Go中select多路复用的实现示例》Go的select用于多通道通信,实现多路复用,支持随机选择、超时控制及非阻塞操作,建议合理使用以避免协程泄漏和死循环,感兴趣的可以了解一下... 目录一、什么是select基本语法:二、select 使用示例示例1:监听多个通道输入三、select的特性四、使用se

Go语言使用Gin处理路由参数和查询参数

《Go语言使用Gin处理路由参数和查询参数》在WebAPI开发中,处理路由参数(PathParameter)和查询参数(QueryParameter)是非常常见的需求,下面我们就来看看Go语言... 目录一、路由参数 vs 查询参数二、Gin 获取路由参数和查询参数三、示例代码四、运行与测试1. 测试编程路

Python学习笔记之getattr和hasattr用法示例详解

《Python学习笔记之getattr和hasattr用法示例详解》在Python中,hasattr()、getattr()和setattr()是一组内置函数,用于对对象的属性进行操作和查询,这篇文章... 目录1.getattr用法详解1.1 基本作用1.2 示例1.3 原理2.hasattr用法详解2.

Go语言使用net/http构建一个RESTful API的示例代码

《Go语言使用net/http构建一个RESTfulAPI的示例代码》Go的标准库net/http提供了构建Web服务所需的强大功能,虽然众多第三方框架(如Gin、Echo)已经封装了很多功能,但... 目录引言一、什么是 RESTful API?二、实战目标:用户信息管理 API三、代码实现1. 用户数据

redis和redission分布式锁原理及区别说明

《redis和redission分布式锁原理及区别说明》文章对比了synchronized、乐观锁、Redis分布式锁及Redission锁的原理与区别,指出在集群环境下synchronized失效,... 目录Redis和redission分布式锁原理及区别1、有的同伴想到了synchronized关键字

MySQL 临时表创建与使用详细说明

《MySQL临时表创建与使用详细说明》MySQL临时表是存储在内存或磁盘的临时数据表,会话结束时自动销毁,适合存储中间计算结果或临时数据集,其名称以#开头(如#TempTable),本文给大家介绍M... 目录mysql 临时表详细说明1.定义2.核心特性3.创建与使用4.典型应用场景5.生命周期管理6.注

Go语言网络故障诊断与调试技巧

《Go语言网络故障诊断与调试技巧》在分布式系统和微服务架构的浪潮中,网络编程成为系统性能和可靠性的核心支柱,从高并发的API服务到实时通信应用,网络的稳定性直接影响用户体验,本文面向熟悉Go基本语法和... 目录1. 引言2. Go 语言网络编程的优势与特色2.1 简洁高效的标准库2.2 强大的并发模型2.