商业系统的架构设计知易行难,少有一蹴而就的。
它往往是业务、技术、人员、时间的四重平衡与取舍。
架构如下棋,如是见棋走子,不做提前两三步的预测和判断,通常难胜。
当业务已经在系统上跑起来后,想要再改架构,积重难返。
业务不等人,竞争对手进攻,决策层耐心有限,项目成员精力疲惫信心不在,何去何从?
本文讨论的是面向商业的高并发系统,
介绍了一种面向高并发的流媒体传输系统的架构设计,它和具体的业务关系不大。
和自下而上设计(如从使用开源软件验证功能到最终开发出满足业务需要的系统)不同,
这里更注重讨论自上而下的架构设计(从业务目标开始再到实现功能的开源软件使用)的一些基本套路。
一、数据分离
无论是媒体处理系统,还是媒体传输系统,都可以将系统内流动的数据分成四种流,
它们分别是信令流,媒体流,状态流和日志流。
将数据分流,
一是为了解藕高并发系统各个处理单元,对瓶颈点,高频访问点,数据密集点,计算密集点等用不同的技术进行优化;
二是为了人员与项目的并行开发,提高整体的开发效率。
下图是一个带客户端的数据分离的高并发流媒体传