直击微服务基础设施落地的实际难题

许多后端开发者在单体应用开发成熟后,往往卡在向分布式架构迁移的最后一公里。这门课不纠缠于微观语法,而是聚焦于生产环境中最棘手的三大痛点:服务如何互相发现、配置如何统一管理与热更新、流量如何在多个实例间智能分发。课程以 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 项