视频直播服务器设计原则

1. 设计原则

1.1    KISS

简单就是美,用最简单的方式解决问题

1.2    客户/服务端带宽是最珍贵的

最珍贵的是客户端与服务器端的带宽,其次是客户端的CPU,再次是服务器的间的带宽,最后才是服务器的CPU。流畅是第一优先事项。

1.3    避免单点,分布式部署

避免单点进程的出现,如果必须出现,也需要保证其是所有进程中故障率最低的。系统必须支持分布式异地部署,支持平滑扩容,达到系统的高可用。

1.4    不要过早优化

做任何的优化,都必须以事实数据为前提,不要在设计阶段做一些想象中的优化。先保证业务的正常使用,即先扛住,再来优化。

1.5    层次化分布设计

每一层都应该有相应的预处理,不要把所有的处理放在最后一层。

如:客户端应处理的逻辑,应该由客户端处理完毕后再由服务器做后续的处理,不要仅仅把原始数据给到服务器。

每一层都应该有相应的安全防范,不要把所有的防范集中在某一层。

    如:服务端应永远假设客户端发送来的消息包都可能是非法的;客户端应永远假设电脑的输入有恶意性的。

1.6    大系统小做

将功能复杂较大的系统,化大为小,减少模块耦合,降低相关联性,用多个独立的模块来实现整体系统的功能。

总的来说,大系统小做采用的是化繁为简、分而治之,便于开发和迅速实现;同时当某个模块出了问题时,因为相互独立,能将影响降到最低,不至于扩大影响范围。

1.7    有损服务原则

    随着系统功能越来也多,系统的复杂度也越来越大,系统越来越臃肿。这是系统出错的概率就会逐渐增大。当故障异常,一定要保证系统重点功能的正常使用,防止系统零服务的现象发生,这就是有损服务理念。有损服务设计理念如下:

1:问题时,优先保证关键功能

2:非关键功能不可以影响关键功能

3:在条件允许的情况下,损失越少越好

1.8    轻重分离原则

保持接入和业务处理的分离,接入尽量轻量化,使得系统具有很好的吞吐量,处理尽量异步化,使得可以平滑扩展。

关注公众号“大模型全栈程序员”回复“小程序”获取1000个小程序打包源码。更多免费资源在http://www.gitweixin.com/?p=2627

发表评论

邮箱地址不会被公开。 必填项已用*标注