直击微服务基础设施落地的实际难题
许多后端开发者在单体应用开发成熟后,往往卡在向分布式架构迁移的最后一公里。这门课不纠缠于微观语法,而是聚焦于生产环境中最棘手的三大痛点:服务如何互相发现、配置如何统一管理与热更新、流量如何在多个实例间智能分发。课程以 Consul、Nacos 和 Apollo 为核心组件,结合 Go 语言生态,完整演示了从服务注册注销到负载均衡策略的全链路。这种内容对于正在应对系统拆分、解决配置散落和服务通信不稳定问题的团队极具参考价值,能帮助你建立起清晰的微服务治理逻辑,避免在组件选型和集成上走弯路。
门槛设定与学习路径规划
这门课明确面向具备一定 Go 基础的中阶开发者,预设你能熟练使用 Gin 框架、Gorm 数据库访问层以及基础的 HTTP 编程知识。如果你还在学习 Go 语言的基础语法,建议先补齐语言核心特性,否则在跟进 gRPC 接口定义和中间件编写时会感到吃力。资料包的结构遵循由浅入深的逻辑,建议严格遵循以下顺序学习:首先从“用户服务 gRPC 开发”章节入手,通过定义 Proto 接口、实现用户增删改查逻辑,熟悉 Go 微服务的基本交互模式;接着进入“Consul 注册中心”章节,重点理解服务如何动态注册、健康检查机制以及如何获取可用端口;最后攻克“负载均衡”与“配置中心”部分,对比 Consul 与 Nacos 在配置下发上的差异。
学完后的独立产出与资料实操建议
完成全套学习后,你将能够独立搭建一套包含用户中心的基础微服务系统,实现服务的动态上下线、配置实时生效以及基于权重的流量分配。这不再是纸上谈兵的理论,而是可直接复用的工程化能力。在学习资料包时,切勿只看不练。视频内容按章节划分,建议边播放边在本地环境中复现代码。特别是在处理“动态获取可用端口”和“gRPC 连接全局共用”这两个易错点时,遇到报错要参考课程中的调试思路,理解底层连接管理机制。对于 Java 转 Go 的开发者,可重点关注组件间的交互逻辑差异,将原有的 Spring Cloud 经验平滑迁移到 Go 生态中,从而更高效地掌握分布式系统的核心构建方法。
课程目录
📁 03 阶段三:从0到1实现完整的微服务框架 📁
03 服务注册发现、配置中心、负载均衡 📁
02 第2章 负载均衡 03 2-3 常用负载均衡算法 .mp4
[47.6 MB] 06 2-6 gin集成grpc的负载均衡 .mp4
[35.5 MB] 04 2-4 gin从consul中同步服务信息并进行负载均衡-1 .mp4
[48.9 MB] 05 2-5 grpc从consul中同步服务信息并进行负载均衡-2 .mp4
[84.6 MB] 02 2-2 什么是负载均衡,负载均衡的策略有哪些 【整理不易‖记得关注:CunWorkNotes】.mp4
[119.4 MB] 01 2-1 动态获取可用端口 .mp4
[48.3 MB] 📁
03 第3章 分布式配置中心 02 3-2 配置中心选型-apollo vs nacos .mp4
[38.3 MB] 07 3-7 service集成nacos .mp4
[34.1 MB] 06 3-6 gin集成nacos .mp4
[126.3 MB] 05 3-5 通过api获取nacos的配置以及nacos的配置更新 .mp4
[116.3 MB] 03 3-3 nacos的安装 .mp4
[27.9 MB] 04 3-4 nacos的组、配置集、命名空间 .mp4
[28.2 MB] 01 3-1 为什么需要配置中心 .mp4
[40.9 MB] 📁
01 第1章 注册中心-consul 03 1-3 服务注册和注销 .mp4
[100.9 MB] 06 1-6 grpc服务如何进行健康检查 .mp4
[29.2 MB] 02 1-2 consul的安装和配置 .mp4
[91.2 MB] 09 1-9 将用户的grpc连接配置到全局共用 .mp4
[51.7 MB] 07 1-7 将grpc服务注册到consul中 .mp4
[50.0 MB] 01 1-1 什么是服务注册和发现以及技术选型 .mp4
[39.9 MB] 05 1-5 为grpc服务添加viper和zap .mp4
[99.0 MB] 04 1-4 go集成consul .mp4
[62.8 MB] 08 1-8 gin集成consul .mp4
[96.6 MB] 📁
01 用户服务的grpc服务 📁
01 第1章 用户服务-service开发 06 1-6 用户列表接口 .mp4
[57.2 MB] 12 1-
12 测试用户微服务接口 .mp4
[39.7 MB] 07 1-7 通过id和mobile查询用户 .mp4
[38.6 MB] 11 1-
11 批量生产用户 .mp4
[31.2 MB] 02 1-2 同步表结构 .mp4
[35.5 MB] 09 1-9 修改用户和校验密码接口 .mp4
[35.7 MB] 05 1-5 定义proto接口 .mp4
[87.3 MB] 03 1-3 md5加密 .mp4
[31.6 MB] 04 1-4 md5盐值加密解决用户密码安全问题 .mp4
[103.5 MB] 10 1-
10 通过flag启动grpc服务 .mp4
[48.1 MB] 01 1-1 定义用户表结构 .mp4
[75.5 MB] 08 1-8 新建用户 【更多精选‖公众号:CunWorkNotes 获取】.mp4
[42.7 MB] 13 1-
13 课后作业 .mp4
[51.0 MB] 📁
02 用户服务的web服务 📁
02 第2章 web层开发-用户接口开发 10 2-
10 阿里云发送短信 .mp4
[67.3 MB] 03 2-3 登录逻辑完善 .mp4
[61.5 MB] 12 2-
12 用户注册接口 .mp4
[110.7 MB] 04 2-4 session机制在微服务下的问题 【不易整理‖请关注:CunWorkNotes】.mp4
[20.6 MB] 09 2-9 获取图片验证码 【整理不易‖记得关注:CunWorkNotes】.mp4
[124.1 MB] 02 2-2 自定义mobile验证器 【不易整理‖请关注:CunWorkNotes】.mp4
[70.8 MB] 06 2-6 集成jwt到gin中 .mp4
[108.0 MB] 01 2-1 表单验证的初始化 .mp4
[94.1 MB] 07 2-7 给url添加登录权限验证 .mp4
[50.2 MB] 08 2-8 如何解决前后端的跨域问题 .mp4
[118.1 MB] 05 2-5 json web token的认证机制 【整理不易‖记得关注:CunWorkNotes】.mp4
[56.4 MB] 11 2-
11 redis保存验证码 【整理不易‖记得关注:CunWorkNotes】.mp4
[105.7 MB] 📁
01 第1章 web层开发-基础项目架构 09 1-9 viper的配置环境开发环境和生产环境隔离 .mp4
[102.3 MB] 10 1-
10 viper集成到gin的web服务中 .mp4
[84.4 MB] 06 1-6 gin调用grpc服务-1 .mp4
[114.8 MB] 01 1-1 新建项目和目录结构构建 .mp4
[26.5 MB] 05 1-5 集成zap和理由初始到gin的启动过程 - 2 .mp4
[41.3 MB] 04 1-4 集成zap和理由初始到gin的启动过程 - 1 .mp4
[77.3 MB] 07 1-7 gin调用grpc服务-2 .mp4
[125.7 MB] 08 1-8 配置文件 - viper 【资源精选‖更多关注:CunWorkNotes】.mp4
[60.4 MB] 03 1-3 zap的文件输出 【整理不易‖记得关注:CunWorkNotes】.mp4
[47.3 MB] 02 1-2 go高性能日志库 - zap使用 .mp4
[35.9 MB] 📁
00 源码 mxshop【资源精选‖更多关注:CunWorkNotes】.exe [32.2 MB] 📁
08 阶段八:深入底层库封装、ast代码生成方案 📁
01 log日志包设计 📁
01 第1章 如何设计日志包 09 1-9 自定义log接口 .mp4
[55.4 MB] 03 1-3 全局logger和传递参数的logger的用法 .mp4
[35.1 MB] 02 1-2 go-zero和kratos中日志的处理 .mp4
[51.8 MB] 01 1-1 为什么需要自己去设计日志包 【优质资源‖关注:CunWorkNotes 解锁】.mp4
[60.5 MB] 10 1-
10 自定义的logger是如何实现解耦的 .mp4
[41.8 MB] 05 1-5 日志debug、info、error等级别的使用场景 .mp4
[89.1 MB] 07 1-7 生产环境中的日志系统架构 .mp4
[53.6 MB] 11 1-
11 导入已经开发好的log日志包 .mp4
[31.9 MB] 08 1-8 自定义log的options .mp4
[113.1 MB] 04 1-4 日志包的基本需求 .mp4
[48.9 MB] 06 1-6 日志打印的实践经验 .mp4
[11.7 MB] 📁
02 ast代码生成工具开发 📁
01 第1章 如何设计errors错误包 01 1-1 go的error和其他语言的try catch的区别 .mp4
[56.9 MB] 📁
02 第2章 通过ast自动生成代码 04 2-4 通过ast包解析变量名和变量的注释 .mp4
[130.1 MB] 03 2-3 ast语法树的基本元素 .mp4
[20.9 MB] 02 2-2 go的ast包能做什么 .mp4
[54.2 MB] 05 2-5 将ast生成的源码写入文件中 .mp4
[48.1 MB] 06 2-6 通过codegen自动生成注册源码 .mp4
[62.4 MB] 01 2-1 go的generate自动生成代码 .mp4
[88.7 MB] 📁
01 第1章 如何设计errors错误包 06 1-6 http响应应该全部返回200还是返回标准的http code .mp4
[66.1 MB] 09 1-9 errors实现withcode模式和实现code的注册 .mp4
[127.3 MB] 13 1-
13 kratos中如何处理errors .mp4
[18.3 MB] 04 1-4 使用wrapf保存和打印error错误栈 .mp4
[23.2 MB] 08 1-8 如何自定义错误码 .mp4
[37.2 MB] 05 1-5 通过is和as方法判断error的值 .mp4
[43.8 MB] 11 1-11 自定义的error放入grpc返回造成的不兼容怎么办 .mp4
[52.4 MB] 02 1-2 常用的errors、fmt和pkg errors错误处理包 .mp4
[62.9 MB] 10 1-
10 grpc中的error处理 .mp4
[70.1 MB] 12 1-12 增加fromerror解决grpc转换为内部error .mp4
[81.0 MB] 03 1-3 使用errors打印调用栈 .mp4
[35.6 MB] 07 1-7 如何设计错误码更加科学 .mp4
[38.7 MB] 📁
06 阶段六:开发规范、设计模式、单元测试 📁
02 设计模式和单元测试 📁
01 第1章 设计模式 02 1-2 kratos和grpc中如何使用函数选项模式的 .mp4
[34.4 MB] 04 1-4 单例模式和sync.Once原理 .mp4
[32.6 MB] 07 1-7 责任链模式 .mp4
[24.6 MB] 06 1-6 抽象工厂模式 .mp4
[57.9 MB] 05 1-5 简单工厂模式 .mp4
[49.7 MB] 01 1-1 为什么需要函数选项模式 .mp4
[22.8 MB] 03 1-3 如何实现函数选项模式 .mp4
[66.9 MB] 📁
02 第2章 单元测试 05 2-5 通过sqlmock对gorm进行单元测试 【资源精选‖更多关注:CunWorkNotes】.mp4
[97.4 MB] 09 2-9 解决模糊测试发现的bug以及testdata目录用途 .mp4
[44.9 MB] 08 2-8 go fuzz模糊测试 .mp4
[110.5 MB] 06 2-6 通过ExpectExec和assert判断测试结果 .mp4
[49.6 MB] 07 2-7 如何对grpc、redis和rocketmq等进行测试 .mp4
[32.6 MB] 01 2-1 测试金字塔是什么 .mp4
[76.5 MB] 02 2-2 简单回顾一下测试用例 .mp4
[50.7 MB] 11 2-
11 ginkgo测试框架快速入门 .mp4
[94.1 MB] 12 2-12 如何将ginkgo和gomonkey、gomock结合使用 .mp4
[49.6 MB] 04 2-4 通过gomock进行测试用例编码 .mp4
[122.6 MB] 03 2-3 如何写出方便测试的代码 .mp4
[80.4 MB] 10 2-
10 通过gomonkey进行单元测试 .mp4
[116.6 MB] 📁
01 开发规范和go基础扩展 📁
02 第2章 go基础知识扩展 02 2-2 常见错误 - 结构体空指针 .mp4
[9.0 MB] 07 2-7 泛型的错误用法 .mp4
[53.3 MB] 05 2-5 go中如何使用泛型 .mp4
[17.0 MB] 04 2-4 什么是泛型 【更多精选‖公众号:CunWorkNotes 获取】.mp4
[21.0 MB] 01 2-1 map初始化容易犯的错 .mp4
[33.4 MB] 03 2-3 常见错误 - 使用对循环迭代器变量的引用 .mp4
[44.0 MB] 06 2-6 泛型的常见用法 .mp4
[50.9 MB] 📁
01 第1章 开发规范 09 1-9 使用mono-repo还是multi-repo管理项目源码 .mp4
[83.5 MB] 02 1-2 课程基本开发工具说明 - 重要! .mp4
[9.2 MB] 04 1-4 项目开发流程 【更多精选‖公众号:CunWorkNotes 获取】.mp4
[65.3 MB] 10 1-
10 微服务的项目目录规范 .mp4
[45.9 MB] 11 1-
11 go vet 进行代码检测 .mp4
[15.8 MB] 08 1-8 go的项目目录规范 .mp4
[39.8 MB] 06 1-6 git的commit规范 .mp4
[44.0 MB] 07 1-7 go的代码规范简介 .mp4
[71.5 MB] 12 1-
12 golangci-lint进行代码检测 .mp4
[111.2 MB] 05 1-5 git的代码分支管理 .mp4
[39.4 MB] 01 1-1 开始后续学习前的说明 .mp4
[27.8 MB] 03 1-3 项目开发有哪些规范需要注意 .mp4
[65.0 MB] 📁 11 阶段十一:基于k8s部署项目 📁 01 通过k8s部署服务 📁
01 第1章 docker入门 06 1-6 容器相关命令 .mp4
[125.5 MB] 05 1-5 镜像相关的操作命令 .mp4
[30.5 MB] 01 1-1 docker介绍 .mp4
[54.9 MB] 13 1-
13 entrypoint和cms命令的区别 .mp4
[49.3 MB] 10 1-
10 最简单的Dockerfile .mp4
[99.0 MB] 02 1-2 容器化技术 .mp4
[36.0 MB] 07 1-7 docker网络端口映射 .mp4
[78.4 MB] 09 1-9 docker的环境变量 .mp4
[80.9 MB] 04 1-4 docker的基本概念-镜像、容器、仓库 .mp4
[84.6 MB] 12 1-
12 制作一个gin服务的镜像 .mp4
[90.3 MB] 08 1-8 docker外部数据挂载 .mp4
[40.6 MB] 03 1-3 为什么go是云原生最佳语言 .mp4
[61.6 MB] 14 1-
14 env、arg和workdir .mp4
[25.6 MB] 11 1-
11 dockerfile的COPY命令 【优质资源‖关注:CunWorkNotes 解锁】.mp4
[25.6 MB] 📁
02 第2章 kubesphere部署服务 11 2-
11 安装nacos .mp4
[39.6 MB] 17 2-
17 推送本地镜像到harbor并部署 .mp4
[55.9 MB] 16 2-
16 kubesphere配置harbor镜像仓库 .mp4
[44.9 MB] 03 2-3 云服务器安装docker .mp4
[31.9 MB] 09 2-9 kubesphere安装redis .mp4
[14.8 MB] 07 2-7 kubesphere部署mysql .mp4
[61.0 MB] 04 2-4 安装kubesphere .mp4
[71.9 MB] 08 2-8 配置服务允许外部访问 .mp4
[87.4 MB] 18 2-
18 部署jaeger .mp4
[10.8 MB] 02 2-2 k8s系统选型 .mp4
[48.4 MB] 06 2-6 创建存储卷和配置 .mp4
[19.9 MB] 13 2-
13 rocketmq安装-nameserver .mp4
[28.2 MB] 15 2-
15 安装harbor .mp4
[58.2 MB] 10 2-
10 kubesphere安装consul .mp4
[28.8 MB] 01 2-1 为什么我们需要k8s .mp4
[69.6 MB] 14 2-
14 rocketmq安装-broker .mp4
[63.0 MB] 12 2-
12 安装elasticsearch .mp4
[34.4 MB] 05 2-5 kubesphere的工作负载、服务和容器组 .mp4
[100.9 MB] 📁 02 devops和k8s 📁
02 第2章 k8s入门 08 2-8 k8s的configmap、secret .mp4
[46.2 MB] 06 2-6 k8s的ingress .mp4
[32.2 MB] 02 2-2 pod是什么 .mp4
[52.4 MB] 04 2-4 k8s的控制器 - deployment .mp4
[109.8 MB] 10 2-
10 课程总结和进一步学习建议 .mp4
[121.8 MB] 03 2-3 kubectl相关的pods命令 .mp4
[50.7 MB] 07 2-7 k8s的持久卷 .mp4
[69.5 MB] 05 2-5 k8s的service .mp4
[106.9 MB] 01 2-1 k8s学习路线 【资源精选‖更多关注:CunWorkNotes】.mp4
[51.2 MB] 09 2-9 k8s的架构 .mp4
[38.6 MB] 📁
01 第1章 devops进行持续集成 … 其余 7
19 项略,目录共 919 项