3-6个月帮助学员掌握golang后端开发岗位必备技术点
教程时长: 150+小时
五大核心专栏,原理+源码+案例分析+项目实战直击工作岗位
golang:解决go语言编程问题
工程组件:解决golang工程化问题
分布式中间件:解决技术栈单一及分布式开发问题
云原生:解决云原生分布式部署及监控和运维的问题
场景化解决方案:项目实战、提供实际的分布式解决方案以及解决方案落地
一、Golang
下开发环境安装配置
- golang 安装与配置
- 编译与运行
- go mod 依赖管理
- goland 配置与 debug
golang基础
- 语言结构与基础语法
- 数据类型与变量
- 变量作用域与函数.
- 运算符与优先级
- 流程控制语句
- 如何使用golang标准库
golang特性
- defer/recover异常捕获和处理
- inter face隐式实现
- 通过通信共享内存
- 函数式编程与闭包
- 文件的copy与文件的读写
- cgo与C语言交互
并发编程
- sync. WaitGroup等待一-组goroutine完成
- sync. Cond根据条件等待goroutine完成
- sync. Mutex与sync.RWMutex实现并发安全
- sync. Map线程安全集合
- sync. Pool实现对象的重复利用
- sync.Once实现数据懒加载
- atomic通过内存共享数据
- context控制协程退出
网络编程
- TCP编程
- UDP编程
- UDP可靠传输协议QUIC
- Http编程
- WebSocket编程
单元测试与性能分析
- 功能测试
- 基准测试
- 模糊测试
- http测试
- pprof性能分析
常见数据结构
- 切片(可变数组)
- 集合(字典)
- 链表
- 队列
- 栈
- 树
常见算法
- 冒泡排序
- 选择排序
- 插入排序
- 快速排序
- 哈希查找
- 二叉查找树
设计模式
- 单例模式
- 工厂模式
- 策略模式
- 观察者模式
- 适配器模式
- 代理模式
- 责任链模式
二、工程组件
微服务工具集go-kit
- 三层结构与中间件编程
- 限流与熔断
- 请求链路追踪
- 服务发现和负载均衡
- api网关
- prometheus监控指标
高性能RPC框架gRPC
- 使用 protobuf 定义服务
- 一元请求与流式请求
- header与trailer元数据传输
- TLS与双向TLS确保通讯安全
- OAuth2 认证与拦截器
- Keepalive 连接保活配置
- Resolver 服务名称解析器
- 多路复用与健康检查
- Retry 与 LoadBalance
- Client 连接池的实现
高性能web框架gin .
- RESTful API 与 API 版本控制
- Controller 模型绑定与参数验证
- 中间件编程及 jwt 身份认证
- Protobuf 消息传输
高性能消息传输协议protobuf
- 类型的导入与消息格式的定义
- protoc编译器与API读写消息
Api文档管理go-swagger
- RESTful API设计 规范
- swag与gin集成
- swag与net/http集成
对象关系映射gorm
- Model 的定义与tag的使用
- 基于 orm 的 CRUD 与原生 SQL
- 嵌套事务、SavePoint/RolIbackTo 事务
- Hook 与 Session
轻量级认证机制jwt
- jwt认证机制原理
- HS、RS、ES、ED签名密钥生成
- HS、RS、ES、ED签名与验证
字段验证器validator
- 标签符号及单字段验证
- struct绑定与多层级验证
- 自定义字段、结构体补充及自定义验证
- struct与map基于map规则验证
- 根据locale本地化提示消息
结构化日志记录logrus .
- 以 std、file、fileRotate 三种方式输出日志
- 通过 Hooks 向多个位置发送日志
网关grpc-gateway
- option 方式实现 gRPC 接口映射
- 配置文件的方式实现 gRPC 接口映射
- 实现以 HttpBody 响应请求
- 将文件通过网关上传的 gRPC 服务端
- swagger 接口文档输出
- 自定义网关实现
命令行框架cobra
- command及多级command
- flags定义、配置绑定及flags检查
- args内置验证器与自定义验证
- Hook及Hook的继承
配置解决方案viper
- 读取本地配置文件
- 读取远程ETCD配置中心配置文件
轻量级访问控制框架casbin
- 基于ACL访问控制模块流量过滤
- 基于RBAC模型的访问控制
- 基于ABAC模型的访问控制
分布式链路追踪0penTelemetry
- jaeger 与 zipkin 集成
- oteI-collector 集成
- prometheus 集成
- 收集器数据采集
三、分布式中间件
redis
- redis 整体结构、存储结构
- string 命令及内部存储原理
- string 对象存储应用
- string 累加器应用
- string分布式锁
- string 位运算应用
- list 命令及内部存储原理
- list 栈应用
- list 队列、异步队列、阻塞队列
- list 固定窗口记录
- hash 命令及内部存储原理
- hash对象存储应用
- set 命令及内部存储原理
- set 唯一无序应用
- set 关系应用
- zset 命令及内部存储原理.
- zset 排行榜
- zset 延迟队列
- zset 时间窗口限流
- redigo 操作
- redigo 管道和事务
- redigo 订阅发布、stream
mysql
- OLTP、OLAP、体系结构
- mysql 网络模块:连接池与事务
- 表创建删除、数据表操作(CRUD)
- 聚合查询、分组查询、联表查询
- 主键索引、唯一索引
- 普通索引、组合索引
- 索引与约束
- 索引实现-存储结构以及B+树
- 最左匹配原则以及覆盖索引
- 索引失效、索引优化、SQL优化
- explain 分析以及慢日志查询
- 事务控制语句
- 事务的acid特性
- 事务的隔离级别
- 加锁流程、释放锁流程
- mvcc 原理,当 前读以及快照读
- 读异常、死锁原理以及案例分析
mongodb
- mongodb bson 解析
- mongodb crud 操作
- mongodb 复合索引查询、聚合查询
- mongodb 文档管理
- mongodb go driver 操作
- mongodb 连接池实现
etcd
- etcd v2与v3比较
- etcd 体系结构
- etcd 数据版本号机制
- etcd CURD
- etcd 监听、事务、租约
- etcd 索引以及B+树
- etcd 读写机制以及事务 ACID 特性分析
- Raft 共识算法与leader选举和日志复制
- Raft 运行机理详解
- etcd go 驱动包操作
- etcd服务发现
- etcd leader 选 举
- etcd 分布式锁
kafka
- kafka 体系结构以及读写机制
- kafka 异步处理
- kafka 系统解耦
- kafka 流量削峰
- kafka 日志处理
- kafka 驱动包生产者消息生产策略
- kafka 驱动包生产者 ack 策略
- kafka 驱动包消费者组 rebalance 机制
ElasticSearch
- 倒排索引、lucene
- es-head和k ibana
- es 集群健康值检查
- es 索引操作以及文档操作
- es 读写机制
- es 匹配查询、范围查询、多条件查询
- es 中文分词、聚合查询
- es go 驱动包操作、索引以及文档操作
- es 高级查询: term、match、aggregation
四、云原生
git
- git 的工作流程
- 代码管理
- 分支管理
- 代码共享与项目更新
- 代码检查与对比
gitlab
- 基于 Docker 安装 gitlab runner
- gitlab CI/CD 标准流程
- 基于 gitlab 的代码评审
- 变量和安全文件
- CI/CD 配置文件详解
- 基于 docker out docker 构建 docker 镜像
- 基于 k8s 安装 gitlab runner
- 基于 k8s kaniko 构建 docker 镜像
Docker基础
- Docker 安装配置
- RootFs 环境依赖
- Linux Namespace 隔离
- Cgroup 资源配额限制
Docker容器
- Docker 命令行操作
- 自定义容器启动命令或入口程序
- 容器heaIth check
- 容器重启策略
- 容器资源配额
- 容器命名空间隔离
- Volume 数据存储持久化与数据共享
- bridge、host、overlay 网络驱动
Docker镜像
- 镜像分层机制
- 容器写时复制机制
- 容器联合挂载机制
- 镜像内容寻址机制
- 镜像构建
- 镜像共享
- 私有注册中心构建
Docker项目部署
- Docker Compose 项目部署
- Swarm 集群高可用
- 基于 Swarm 集群的分布式部署
- 基于 Swarm 集群的灰度发布
- Swarm 集群 deploy stack
Kubernetes基础
- kubeadm 集群安装和升级
- flannel 网络插件的安装
- CRI 与 cri-dockerd
- api server 组件
- controller manager 组件
- Scheduler 组件
- kubelet 组件
- proxy 组件
- kubectI 命令行操作
- metrics server 监控 node 和 pod
Kubernetes Pod
- pod 的定义与基本用法
- pod 生命周期与重启策略
- 容器镜像拉取策略
- init Container
- 容器资源配额
- 容器声明周期处理函数
- 容器健康检查与服务可用性
Kubernetes Pod 无状态部署
- 静态 pod
- Dep|oyment 部署
- Dep|oyment 升级和回滚
- Deployment 暂停与恢复
- Deployment 手动与自动伸缩
- DaemonSet 部署
- Job 批处理
- Crontab 定时任务
Kubernetes Pod调度
- NodeSelector 定向调度
- Node 亲和性调度 NodeAffinity
- Pod 亲和度与互斥调度 PodAffinity
- pod Taints 和 Tolerations
- pod Priority 优先级调度
Kubernetes Service
- service 的定义与基本用法
- service 4种发布类型
- service 无选择符 service
- service HeadLess Service
- service 环境变量与DNS服务发现
- service TLS
- ingress http 7层路由机制
- ingress Controller 安装
- ingress 转发策略配置
- ingress TLS 配置
Kube rnetes Vol ume
- Volume 与 configMap
- Volume 与 secret
- Volume 与 PersistentVolume
- 部署 cephfs 分布式存储文件系统
- PersistentVolume 静态制备
- Stor ageClass 动态制备
- PersistentVoIumeClaim 磁盘申领
Kubernetes Pod 有状态部署
- StatefulSet 部署 MongoDB 集群
- StatefulSet 部署 Redis 集群
- StatefulSet 部署 ES 集群
- StatefulSet 部署 ETCD 集群
- StatefulSet 部署 Kafka 集群
- StatefulSet 部署 Mysql 集群
Kubernetes 集群管理
- Node 的隔离与恢复
- Node 的扩容
- Namespace 与 Context 集群环境共享与隔离
- 基于节点资源的 pod 驱逐机制
Kubernetes 集群安全
- ABAC 授权模式
- Webhook 授权模式
- RBAC 授权模式
- Pod 的安全策略配置
Kubernetes 二开
- 通过 client-go 管理集群资源
- 通过聚合 apiserver 扩展 k8s 功能
- 通过自定义 k8s 资源扩展 k8s功能
Kubernetes 声明式资源管理 Kustomize
- 生成资源
- 设置贯穿性字段
- 组织和制定资源
- 资源的基准与覆盖
- 使用 kustomize 操作资源
持续交付 Argo
- Argo安装配置
- Argo CD 持续交付
- Argo Canary 和 BlueGreen 部署
监控解决方案 Prometheus
- 记录规则配置
- 报警规则配置
- PromQL 查询语句
- influxdb 远程数据中心配置
- 报警信息配置管理
- 自定义应用程序指标
服务网格 istio
- 在 Kubernetes 上部署 istio
- istio 流量管理实践
- istio 安全配置实践
- 使用 Prometheus 进行生产规模的监控
五、场景化解决方案
ChatGPT 企业级项目实战-环境准备
- ChatGPT 企业级项目实战特别说明
- 功能需求与项目设计思路
- 项目部署环境准备
- Linux 下编译并运行开源项目
- Windows 下编译并运行开源项目
ChatGPT 企业级项目实战-tokenizer 计数服务
- 为什么选择 Docker
- Docker 镜像原理以及镜像构建流程
- 容器的 NameSpace 隔离与 Cgroup 控制组
- Docker 运行 token 计数容器
ChatGPT 企业级项目实战-GPT Proxy 境外代理
- 项目部署架构调整及细化
- Golang 反向代理与 ChatGPT API
- gin 框架中间件编程与鉴权
- logrus 与 lumber jack 日志滚动记录
- ChatGPT API 参数释义与使用
- testing 测试框架之功能测试
- testing 测试框架之性能测试与并发测试
- pprof 性能分析与服务限流
- docker 镜像多阶段构建与 Docker Service 的部署策略
ChatGPT 企业级项目实战-ChatGPT Data 数据服务
- 数据库的选择以及数据设计
- gRPC 环境的安装与使用流程
- protobuf 协议以及服务的定义
- gRPC 服务端的实现以及依赖注入
- gRPC Server 端单元测试
- Keepalive 服务端保活策略与客户端强制策略
- gRPC 微服务通讯安全策略
- gRPC 健康检查与单 tcp 连接多路复用
ChatGPT 企业级项目实战-敏感问题识别服务
- 二叉搜索数与词库重排
- 敏感词识别服务的实现
- 敏感词识别服务的打包与部署
ChatGPT 企业级项目实战-关键词提取服务
- 关键词提取服务的具体实现
- 关键词提取服务打包与部署
ChatGPT 企业级项目实战-ChatGPT 业务服务
- gRPC 微服务项目脚手架搭建,
- 服务设计思路与响应数据协议解析
- 服务端基本请求流程的实现
- Redis 连接池与 ChatGPT 上下文管理
- ChatGPT 携带上下文发送请求
- gRPC 客户端连接池与 gRPC 服务的接入
- Docker Service 服务部署
ChatGPT 企业级项目实战-Web 端协议解析
- ChatGPT Web 端协议解析
- ChatGPT Web 端的参数化构建与部署
ChatGPT 企业级项目实战-QQ 端协议解析
- OneBot 聊天机器人应用接口标准.
- OneBot 实现的正向 Websocket
- OneBot 实现的反向 WebSocket
- QQ 端消息类型处理与服务部署
ChatGPT 企业级项目实战-Crontab 定时任务服务
- docker 注册中心与微服务的部署
- 公众号、企微开发流程与 Crontab 定时任务
- Crontab 定时获取微信接口调用凭据
- Crontab 服务的具体实现
ChatGPT 企业级项目实战-微信公众号协议解析
- 公众号消息回调接口配置
- 公众号被动回复与客服消息发送
- Crontab 服务与 ChatGPT 业务服务的接入
ChatGPT 企业级项目实战-企业微信协议解析
- 企业微信微信客服开发流程与配置
- ChatGPT 的接入与消息的加解密
ChatGPT 企业级项目实战一个人微信接入
- 个人微信群聊与私聊的接入
- 个人微信 ChatGPT 的接入
ChatGPT 企业级项目实战一项目运营问题的解决
- 一个更显专业的 Web 前端
- ChatGPT 每分钟限流问题如何解决
ChatGPT企业级项目实战-微服务的运维
- Docker Swarm 集群管理和节点管理
- Docker Swarm 集群如何接入私有注册中心
- Compose file 与 Docker Stack 部署
- Docker Stack 部署服务到云服务器
- Nginx 反向代理 WebSocket 与服务端流程
- gitlab 与gitlab runner 环境的安装与升级
- gitlab CI/CD ChatGPT 项 目
- Web 前后端分离与 gitlab CI/CD
基于 gin 框架的 web 开发脚手架
- 中间件统一实现 Oauth2 身份验证
- 路由分组实现 api 版本控制
- jwt 实现客户端令牌
- logurs 日志组件封装
- 分布式日志链路追踪设计
- EFK 统一日志采集
- viper 配置文件读取
- etcd 应用配置中心
- redis 数据缓存
- mysq| 数据存储
基于 grpc 的微服务开发脚手架
- 服务与服务之间采用 TLS 加密通信
- etcd 服务注册和服务发现
- etcd 应用配置中心
- EFK 统一日志采集
- viper 配置文件读取
- logurs 日志组件封装
- 分布式日志链路追踪设计
- redis 数据缓存
- mysql 数据存储