先说清楚:这门课现在还值不值得学

在微服务架构里,服务注册、发现和调用是绕不开的核心概念。现在主流编排工具已经是 Kubernetes,但如果你在老项目里遇到 Go-Micro 框架,或者想从底层逻辑弄懂微服务之间是怎么互相找地址、怎么负载均衡的,这套实战课依然有它的参考价值。需要提醒的是,资料里明确标注了技术栈偏旧,录制时基于的框架版本较早。如果你的目标是直接应对当下的云原生环境,建议优先转向 K8s 体系;如果你想补齐 Go 语言生态下微服务的基础概念,这套资料可以作为理解服务治理的过渡素材来读。

解决什么场景,学完能独立做什么

这套课解决的是“懂了微服务理论,但不知道怎么用 Go 落地写代码”的问题。它把重点放在了从零搭建一个 Web API 到实现服务间通信的完整链路上。资料里用到了 Gin 来处理外部 HTTP 请求,用 Consul 做服务注册中心,并详细演示了服务发现时的随机选择和轮询机制。学完之后,你应该能独立写出一个基础的微服务雏形:把多个独立的服务注册到 Consul 中,让主服务通过发现机制找到它们,并且用基本方式和插件方式完成服务调用。对于需要接手老项目、排查服务注册发现环节报错的开发者来说,这些套路能帮你快速定位问题。

资料怎么看,配合练习建议

这套资料适合有 Go 语言基础、能看懂基本语法,但对微服务框架还没实操经验的开发者。如果是零基础转行,建议先补齐 Go 的基础语法,不然跟着敲代码容易卡在环境报错上。看的时候建议按三个阶段走:先把热身和 HTTP API 部分看完,用 Gin 跑通第一个接口;接着重点看 Consul 服务注册和发现部分,这部分是核心,一定要自己在本地装个 Consul,跟着把服务注册上去,手动开启多个服务实例,观察轮询调用的实际效果;最后看服务调用环节,对比直接调用和使用插件调用的区别。练习时不要光看,每学完一个讲次就自己写个测试用例去请求,把服务跑通。遇到框架版本差异导致的报错,对照官方文档查一下改动说明,这也是实际工作中排查依赖版本问题的必经过程。


[本课程已过时,由K8S课程全面接管](录制课程时go-micro版本是v1.9.1。后面课时会更新到1.14+,会有变动说明)本课程是后面的&

课程目录

*   第一章:热身和http api篇 cplist.push('第一章:热身和http api篇');/

  *   第1讲:开张课、安装框架、创建第一个web api

  *   第2讲:引入外部框架gin生成web API

  *   第3讲:服务注册:快速把服务注册到Consul中

  *   第4讲:[准备工作课]模拟运行API(主站API、商品API)

  *   第5讲:服务发现(1):获取consul服务列表、selector随机选择

  *   第6讲:穿插知识点:使用内置命令参数启动、注册多个服务

  *   第7讲:服务发现(2):开启多个服务、用轮询方式获取服务

  *   第8讲:服务调用:基本方式调用 Api(http api)

  *   第9讲:服务调用: 使用插件、调用http api的正规姿势(初步)

  *   第10讲:调用http api的姿势:带参数调用(有思考题)

  *   第11讲:调用http api:引入protobuf、生成参数和响应模型

  *   第12讲:处理参数模型中的json tag不一致问题

*   第二章:rpc和微服务 cplist.push('第二章:rpc和微服务');/

  *   第13讲:使用rpc构建一个简易商品服务、注册到consul

  *   第14讲:在gin中调用上节课构建的rpc服务(获取商品列表)

  *   第15讲:在gin中调用rpc服务(参数名处理、代码基本封装)

  *   第16讲:Go-micro的装饰器wrapper的初步使用(中间件)

  *   第17讲:熔断器使用(1):hystrix初步、捕获超时报错

  *   第18讲:熔断器使用(2):服务降级的使用

  *   第19讲:熔断器使用(3):初步整合hystrix到go-micro中

  *   第20讲:上节课课后作业:增加商品详细API(rpc)

  *   第21讲:熔断器使用(4):通用降级方法的编写姿势

  *   第22讲:熔断器使用(5):熔断器的参数设置

*   第三章:Micro工具篇(变动部分看第五章) cplist.push('第三章:Micro工具篇(变动部分看第五章)');/

  *   第23讲:微服务工具箱(运行时)学习:了解Micro、复习、列出所有服务

  *   第24讲:使用Micro工具查看和调用我们的服务

  *   第25讲:使用Micro为我们的rpc服务创建http api网关

  *   第26讲:(选学)创建grpc网关的基本设置和运行方法

*   第四章:场景练习之用户注册 cplist.push('第四章:场景练习之用户注册');/

  *   第27讲:复习课、基本接口(用户注册接口)

  *   第28讲:引入gorm、用户数据入库

  *   第29讲:用户注册场景:数据验证(1):第三方验证库、自定义错误信息

  *   第30讲:用户注册场景:数据验证(2):自定义验证tag、正则验证

  *   第31讲:用户注册场景:数据验证(3) :切片属性的验证(string切片)