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

相关文章

国内环境搭建私有知识问答库踩坑记录(ollama+deepseek+ragflow)

《国内环境搭建私有知识问答库踩坑记录(ollama+deepseek+ragflow)》本文给大家利用deepseek模型搭建私有知识问答库的详细步骤和遇到的问题及解决办法,感兴趣的朋友一起看看吧... 目录1. 第1步大家在安装完ollama后,需要到系统环境变量中添加两个变量2. 第3步 “在cmd中

JAVA SE包装类和泛型详细介绍及说明方法

《JAVASE包装类和泛型详细介绍及说明方法》:本文主要介绍JAVASE包装类和泛型的相关资料,包括基本数据类型与包装类的对应关系,以及装箱和拆箱的概念,并重点讲解了自动装箱和自动拆箱的机制,文... 目录1. 包装类1.1 基本数据类型和对应的包装类1.2 装箱和拆箱1.3 自动装箱和自动拆箱2. 泛型2

MySQL常见的存储引擎和区别说明

《MySQL常见的存储引擎和区别说明》MySQL支持多种存储引擎,如InnoDB、MyISAM、MEMORY、Archive、CSV和Blackhole,每种引擎有其特点和适用场景,选择存储引擎时需根... 目录mysql常见的存储引擎和区别说明1. InnoDB2. MyISAM3. MEMORY4. A

MyBatis的配置对象Configuration作用及说明

《MyBatis的配置对象Configuration作用及说明》MyBatis的Configuration对象是MyBatis的核心配置对象,它包含了MyBatis运行时所需的几乎所有配置信息,这个对... 目录MyBATis配置对象Configuration作用Configuration 对象的主要作用C

Windows环境下安装达梦数据库的完整步骤

《Windows环境下安装达梦数据库的完整步骤》达梦数据库的安装大致分为Windows和Linux版本,本文将以dm8企业版Windows_64位环境为例,为大家介绍一下达梦数据库的具体安装步骤吧... 目录环境介绍1 下载解压安装包2 根据安装手册安装2.1 选择语言 时区2.2 安装向导2.3 接受协议

SpringBoot基于沙箱环境实现支付宝支付教程

《SpringBoot基于沙箱环境实现支付宝支付教程》本文介绍了如何使用支付宝沙箱环境进行开发测试,包括沙箱环境的介绍、准备步骤、在SpringBoot项目中结合支付宝沙箱进行支付接口的实现与测试... 目录一、支付宝沙箱环境介绍二、沙箱环境准备2.1 注册入驻支付宝开放平台2.2 配置沙箱环境2.3 沙箱

使用Java发送邮件到QQ邮箱的完整指南

《使用Java发送邮件到QQ邮箱的完整指南》在现代软件开发中,邮件发送功能是一个常见的需求,无论是用户注册验证、密码重置,还是系统通知,邮件都是一种重要的通信方式,本文将详细介绍如何使用Java编写程... 目录引言1. 准备工作1.1 获取QQ邮箱的SMTP授权码1.2 添加JavaMail依赖2. 实现

Golang基于内存的键值存储缓存库go-cache

《Golang基于内存的键值存储缓存库go-cache》go-cache是一个内存中的key:valuestore/cache库,适用于单机应用程序,本文主要介绍了Golang基于内存的键值存储缓存库... 目录文档安装方法示例1示例2使用注意点优点缺点go-cache 和 Redis 缓存对比1)功能特性

Go 1.23中Timer无buffer的实现方式详解

《Go1.23中Timer无buffer的实现方式详解》在Go1.23中,Timer的实现通常是通过time包提供的time.Timer类型来实现的,本文主要介绍了Go1.23中Timer无buff... 目录Timer 的基本实现无缓冲区的实现自定义无缓冲 Timer 实现更复杂的 Timer 实现总结在

linux环境openssl、openssh升级流程

《linux环境openssl、openssh升级流程》该文章详细介绍了在Ubuntu22.04系统上升级OpenSSL和OpenSSH的方法,首先,升级OpenSSL的步骤包括下载最新版本、安装编译... 目录一.升级openssl1.官网下载最新版openssl2.安装编译环境3.下载后解压安装4.备份