极客时间 GO实践
微服务概览
康威定律
You build it. You fix it.
按照业务组织服务。
按照业务能力组织服务的意思是
去中心化
- 数据去中心化
- 隔离性: 每个服务要独享自己的存储设置。
- 治理去中心化
- 账号服务 服务发现
- 技术去中心化
- 收敛语言,go, C++
基础设置自动化
CICD
Prometheus/ELK/Control Panle
可用性&兼容性设计
Design for Failure,所有的依赖都可能会炸,所有可能出现err的地方都可能出现panic。
- 隔离
- 超时控制
- 负载保护
- 限流
- 降级
- 重试
- 负载均衡
微服务设计
API Gateway
API版本升级,强耦合
面向用户的业务场景的API,而不是面向资源的API– 前轻后重
安全认证,限流
gRPC & 服务发现
第6课 评论系统架构设计
功能模块
理解整个背后的业务逻辑,理解业务的本质,事情的初衷。搞清楚系统背后的背景,才能做出最佳的抽象和设计。
在动手设计前反复思考,真正编码的时间只有5%?
不要在想的不清不楚的时候动手。
Mysql: OLTP 如果是group by等计算密集型查询的容易把数据库打垮。
Binlog ?
架构设计等同于数据设计,梳理清楚数据的走向和逻辑。
尽量避免环形依赖。
malloc 申请2G的内存,是否真正绑定了2G物理内存。
什么是缺页中断。
架构设计
存储设计
可用性设计