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)

课程架构

image.png

知识点

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服务网关

分布式相关

  • 负载均衡
  • 分布式锁
  • 分布式事务
  • 幂等性机制

课程资源

  1. 源码
    https://git.imooc.com