我会以一个货运平台的业务案例为主线,阐述一个业务需求是如何经过划分后,被设计为多个微服务,并采用 Go 进行开发,然后如何在云计算平台上部署、上线和运行的。本课程主要由 4 部分组成:
第一部分(模块 1),主要介绍云原生诞生的背景及其概念、微服务的组成和发展趋势,并讲解如何使用 DDD(领域驱动设计)来划分微服务,以及介绍下一代微服务架构 Service Mesh。这部分知识能够帮助你充分理解云原生和微服务的基础概念,以及云原生应用开发的流程和方法论,为你接下来学习各微服务组件的原理和应用打下坚实的理论基础。
第二部分(模块 2),主要介绍 Go 开发的基础知识,包括 Go 语法和流程控制、Go 并发和 Go Web 应用开发等,并阐述如何采用 DDD 对货运平台的业务进行划分,以及相关案例应用实战(微服务部署、容器编排、持续集成和自动化测试等)。这部分主要是补充 Go 语言开发基础,帮助没有了解过 Go 的同学快速掌握 Go 开发的基本要领,也方便接下来讲解如何使用 Go 搭建微服务应用。
第三部分(模块 3 ~ 模块 9),主要讲解微服务架构中基础组件的原理和 Go 业务案例的实战,包括服务注册与发现、RPC 调用、网关、容错处理、负载均衡、统一认证与授权,以及分布式链路追踪等。我们会重点关注各个组件背后的实现原理和使用 Go 开源或者自实现的方式为案例微服务添加组件能力。最后,我还会介绍如何通过 Service Mesh 来整合这些组件提供的能力。
第四部分(模块 10),主要分享 Go 微服务开发中的相关经验和要点,包括日志采集、Go 错误处理、并发陷阱和系统监控等。通过我多年在 Go 微服务开发中积累的相关实践经验,进而避免你在未来的开发中“踩坑”。