慕课网-Go微服务精讲:Go-Zero全流程实战即时通讯(前10章)
# 课程介绍:
轻松应对复杂应用微服务设计,高效实践容器化组件管理,系统掌握Go 高薪关键技能
如何轻松应对复杂应用的微服务架构设计?如何实现高效的容器化组件管理,快速成为 Go 高薪工程师?本课程结合经典 IM 项目,带你深入微服务架构精髓,探究主流微服务框架Go-Zero框架底层运作机制和框架自研之道,让你从分布式系统架构设计、容器化部署管理、高并发性能提升、系统监控等,多维度掌握Go开发高薪技能,助力你快速成为行业急需人才。
# 课程目录:
第1章 从0进入微服务需要了解的基础知识
1-1 保姆级教学,带你落地GO微服务
1-2 系统架构演化过程
1-3 微服务核心要素之拆分原则
1-4 微服务核心要素之服务化
1-5 微服务核心要素之通信机制
1-6 微服务核心要素之无状态
1-7 【拓展】服务架构的设计原则
第2章 掌握rpc/grpc并探究内在本质
2-1 rpc是什么?又如何实现服务通信?
2-2 为什么是以rpc为主而不是restful?
2-3 net/rpc实践案例
2-4 看看netrpc的通信调度实现的内部原理
2-5 grpc介绍与下载安装
2-6 grpc框架实践案例
2-7 protobuf的协议原理
2-8 理解grpc的请求协议http2
2-9 grpc的服务端连接调度实现原理分析(上)
2-10 grpc的服务端连接调度实现原理分析(下)
2-11 grpc的客户端请求发送实现原理分析
2-12 【谈论】实现功能就好为什么还要阅读框架源码?
2-13 章节总结
第3章 上手微服务框架go-zero
3-1 微服务框架与web框架的区别点在哪儿?
3-2 为什么选go-zero?
3-3 下载并认识go-zero
3-4 实践go-zero基础功能案例(api与rpc)–上
3-5 实践go-zero基础功能案例(api与rpc)–下
3-6 实践go-zero基础功能案例(数据库读写与中间件(上)
3-7 实践go-zero基础功能案例(数据库读写与中间件(下)
3-8 探究go-zero是如何基于grpc进一步扩展-server
3-9 探究go-zero是如何基于grpc进一步扩展-client
3-10 关于go-zero中的api服务启动流程
3-11 【扩展】go-zero中集成gorm
3-12 章节总结
第4章 微服务必备容器化技术
4-1 docker介绍与安装及上手应用
4-2 dockerfile介绍并创建go-zero环境容器(上)
4-3 dockerfile介绍并创建go-zero环境容器(下)
4-4 docker-compose编排(上)
4-5 docker-compose编排(下)
4-6 docker-compose编排(中)
第5章 项目业务与架构分析并准备项目基础开展环境
5-1 项目开展的业务需求与开展计划说明
5-2 项目开展的基础环境构建
5-3 【谈论】如何更好地学习新技术
第6章 构建用户/社交服务并分析服务发现与负载均衡原理
6-1 构建用户服务并编写服务部署脚本及dockerfile(上)
6-2 构建用户服务并编写服务部署脚本及dockerfile(下)
6-3 完成用户服务注册,登入功能(上)
6-4 完成用户服务注册,登入功能(下)
6-5 用户服务中搜索,用户信息功能实现(上)
6-6 用户服务中搜索,用户信息功能实现(下)
6-7 数据库与缓存一致性问题
6-8 go-zero在数据层使用的缓存机制实现分析
6-9 构建userapi服务并完善用户服务登入注册api
6-10 构建社交服务rpc服务并完成好友/群相关业务功能(上)
6-11 构建社交服务rpc服务并完成好友/群相关业务功能(下)
6-12 构建社交服务api服务并完成好友/群相关业务功能
6-13 微服务治理之服务注册中心
6-14 go-zero中微服务治理中心的具体实现原理
6-15 go-zero中负载均衡实现原理
6-16 发布并部署用户服务与社交服务
6-17 章节总结
6-18 go内核源码解析之源码阅读分析技巧
第7章 构建im服务并实现用户私聊及离线消息读取
7-1 im通信服务构建思路说明
7-2 理解websocket协议
7-3 websocket应用案例
7-4 im服务业务
7-5 im服务业务功能(上)
7-6 im服务业务功能(中)
7-7 im服务业务功能(下)
7-8 实现im服务用户登入连接
7-9 如何检测用户是否在线?心跳检测又实现呢?
7-10 实现im服务心跳检测
7-11 理解用户与好友私聊实现流程
7-12 实现用户与好友私聊实现流程
7-13 消息可靠与收发优化
7-14 引入kafka消息中间件,并构建异步队列服务
7-15 基于kafka异步数据存储落地及消息通信(上)
7-16 基于kafka异步数据存储落地及消息通信(中)
7-17 基于kafka异步数据存储落地及消息通信(下)
7-18 消息收发ACK(上)
7-19 消息收发ACK(中)
7-20 消息收发ACK(下)
7-21 离线消息与历史消息分析
7-22 实现用户拉取离线消息
7-23 实现用户拉取离线消息(上)
7-24 实现用户拉取离线消息(中)
7-25 实现用户拉取离线消息(下)
7-26 本章总结
第8章 实现im服务消息群聊及消息可读未读
8-1 理解用户与群组聊天功能的实现思路
8-2 实现用户群聊功能
8-3 完善群聊消息业务
8-4 消息已读未读问题该如何实现?
8-5 从0实现bitmap
8-6 实现群聊消息已读未读(上)
8-7 实现群聊消息已读未读(中)
8-8 实现群聊消息已读未读(下)
8-9 消息已读未读如何进一步优化?(上)
8-10 消息已读未读如何进一步优化?(中)
8-11 消息已读未读如何进一步优化?(下)
8-12 发布部署IM服务
8-13 如何实现用户在线离线状态
8-14 实现用户在线状态维护
8-15 本章总结
第9章 构建api网关并优雅的处理各服务配置
9-1 网关是什么?解决什么问题?
9-2 下载并集成于apisix
9-3 服务太多配置不好管理如何优雅处理?
9-4 基于etcd做配置中心实现各个服务自动加载配置
9-5 配置订阅实现动态加载最新配置
9-6 实现im前后端数据交互(上)
9-7 实现im前后端数据交互(下)
9-8 【扩展】为IM服务核心集成服务发现机制
9-9 本章总结
第10章 微服务请求任务的三大措施:超时,重试,幂等
10-1 微服务中如果任务长时间没有响应会有什么问题?
10-2 在go-zero中是如何实现请求超时的呢?
10-3 微服务中任务失败后又如何进行重试?
10-4 业务任务失败重试处理
10-5 在微服务中如果任务多次重复请求会有什么问题?
10-6 幂等性实现方式与思路分析
10-7 实现社交服务创群请求幂等性(上)
10-8 实现社交服务创群请求幂等性(下)
10-9 【谈论】如何去分析一个问题呢?
10-10 本章总结