游戏开发工程师--分布式系统设计

304 阅读1分钟

高可用性

进程间通

Socket API编程

网络中间件

消息队列
Tbus

通信格式

序列化/反序列化
版本兼容
打包性能
Protocol Buffers
TDR

并发模型

多进程模型

Nginx
Master-Worker

多线程模型

java线程池

协程模型

调度算法

Golang
Lua
libCo

超时处理

定时器管理器的性能
定时器管理算法

大系统小做

分区分服架构
拆分系统

按功能需求拆分

好友
工会
邮件
聊天

按处理流程拆分

登陆
匹配
大厅
房间管理

按通用组件拆分

连接管理组件
路由代理组件
数据库代理
负载均衡组件

架构层面的技术支持

异步处理框架

网络处理
状态机框架
协程

底层通讯框架

通讯框架能力

自动化部署能力

"集装箱部署"

逻辑部署与物理部署分离

自动化部署脚本

立体化监控能力

核心参数 CPU
内存
硬盘

网路 出入流量
出入包量
出错告警
突发告警

系统运行状态 QPS
事务耗时
超时比例
错误比例
第三方接口
关键日志监控

分布系统的关键能力

协同开发

系统间通过协议通讯

不直接调用函数

系统间解耦合
独立测试

平行扩容

负载均衡

容灾备份

柔性可用

系统间如何通讯 RPC 如何部署 系统间如何协作 如何定位问题 如何监控