Go + Python双语言开发
适合人群
- 首次微服务开发
- 一年初级开发进阶到高级开发
- 提高CRUD水平,无自研框架能力
- 技术栈单一,缺乏就业竞争力
- 想攻克分布式高频面试题
技术储备要求
- Python基础
- MySQL数据库
- Web后端开发经验
为什么要使用Python+Go
- 字节跳动等大公司要求多语言能力
- Python和Go都很热门
- 动态语言需要学习静态语言
- Go适合高并发和微服务开发
- Python开发效率高
- Go部署简单,微服务生态好
- 微服务架构适合多语言开发
和其他微服务课程的区别
- 从0到1自研
- 双语言混合开发
- 学完可以集成其他语言或者框架进来
为什么要从0到1自研
- 初级开发重视功能,高级开发重视原理
- 自研是了解细节的最好方法
- 懂微服务细节,提高架构能力
- 大公司都在自研,非常看重自研能力
- 面试很容易问到微服务的细节
- 目前没有支持多语言的微服务框架
配套电子书
- 详细的完整电子书,方便复习
- 现场画流程图加深理解
- 方便后续维护和扩展
从0到1的自研过程
- 基础微服务架构
- 服务注册、服务发现
- 配置中心
- 负载均衡
- 链路追踪
- 熔断、限流机制
- api网关
- 自动化部署
Python和Go作用
- Python负责微服务的底层接口开发
- Go处于中间层负责底层接口调用、与网关交互、负载均衡
- Go语句会讲解基础,占用比例较大
课程安排
- 第一阶段 - go语言基础(与python对比)
- 第二阶段 - grpc入门到进阶
- 第三阶段 - 架构设计、orm和gin
- 第四阶段 - 基础微服务(用户服务)
- 第五阶段 - 服务注册、配置中心、负载均衡
- 第六阶段 - 商品、图片、库存、订单服务等服务
- 第七阶段 - 分布式难点(分布式锁、分布式事务、幂等性)
- 第八阶段 - 高可用保障(链路追踪、熔断、限流)
- 第九阶段 - api网关(kong)
- 第十阶段 - 自动化部署(jekins)
课程架构
知识点
Go相关
- gin web框架
- Viper配置
- Zap日志
- Validator表单验证
- Json web token
- 阿里云OSS
- grpc_middleware
Python相关
- Peewee orm
- Loguru日志
- Passlib加密
- grpcio/protobuf
- DNS服务查询
- MQ消息队列
- Redis操作
微服务相关
- RPC框架 - grpc
- Consul服务注册与发现
- Nacos配置中心
- Yapi接口管理
- Jaeger链路追踪
- Sentinel熔断、限流
- Kong服务网关
分布式相关
- 负载均衡
- 分布式锁
- 分布式事务
- 幂等性机制