架构设计第一步:识别复杂度
架构设计的本质目的是为了解决系统复杂性,所以要先了解。
【例】一个系统的复杂度来源于业务逻辑复杂,功能耦合度严重,架构师设计TPS达到50000/s的高性能架构没有意义。
出现问题主要为了满足“高可用”“高性能”“可扩展”三个方面,就算同时出现也要分优先级。
【例】亿级用户平台设计对标QQ,开始设计过于复杂,投入大量人力,上线后发现过度设计多此一举,而且带来很多问题:
- 运行效率低下,升级复杂,容易出错。
- 开发效率低下。
- 小问题不断,不好定位。
- 实际TPS远未达到50000/s
真缺解决做法:
- 列出主要的复杂度问题
- 根据业务、技术、团队等情况进行排序
- 优先解决最主要的复杂度问题
亿级平台应该先将子系统数量降下来。
识别复杂度对于架构师来说是一项挑战,没有经验只能用“排查法”