极客时间 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课 评论系统架构设计 https://github.com/go-kratos
功能模块 理解整个背后的业务逻辑,理解业务的本质,事情的初衷。搞清楚系统背后的背景,才能做出最佳的抽象和设计。
在动手设计前反复思考,真正编码的时间只有5%?
不要在想的不清不楚的时候动手。
Mysql: OLTP 如果是group by等计算密集型查询的容易把数据库打垮。
Binlog ?
架构设计等同于数据设计,梳理清楚数据的走向和逻辑。
尽量避免环形依赖。
malloc 申请2G的内存,是否真正绑定了2G物理内存。
什么是缺页中断。
架构设计
存储设计
可用性设计