直播系统开发架构应满足哪些条件?
高可用:任何一个节点故障都不应该引起服务不可用;
易扩展:具有水平扩展的特性,对不同量级的在线用户数都有应变的能力;
高并发低延迟:能支持大量的用户同时收发消息,消息从发出到送达所有在线端的延时在毫秒级;
客户端兼容性:新型的应用都是能同时跨多种设备实现消息互通的,比如网页端,手机端和桌面端,甚至智能电视等。
要达到以上要求,每一款直播系统的开发都面临着很多难点,如何解决这些问题成了关键。
1、先从移动端平台说起,现在的手机品种很多,手机系统大致也就分为安卓与IOS两种,IOS还好点,无非就是那么几款机型,所以直播APP设计起来,对于规格尺寸等问题的代码编写就可以省力很多,有了一种,其他稍微修改下就完全可以套用了。
安卓系统市面上能见到的手机品牌种类很多,大品牌就有七八个,而且在安卓开源的基础上,各自都有自己研发的手机系统,这就对产品应用设计开发者增加了开发难度,同一款产品,只要是安卓端,你都要针对最起码的手机兼容适配性来设计,只是开发测试阶段,就会需要大量的时间,而且安卓端的碎片化十分严重,如果不合适耗电量普遍非常高,手机用一会就会发烫。
2、CDN分发网络这块是用户看不到摸不着的,但用户的体验度和清晰度却跟它息息相关。现在的用户要求直播点开就能看,不能卡清晰度还要高,在以前rtmp server开源架构上做到这点基本很难,现在国内一些慢慢写的也比较好了。
3、防盗链机制,平台能做起来的,原创唯一性很关键,如果随随便便让一个小平台把链接给盗了,那这个鉴权机制就做的不怎么样了。
4、数据安全的保证,当前的网络安全形势异常复杂,开发应用时如果不在通信安全上花心思,那你的用户就是在互联网上裸奔;开发者需要针对不同的平台,不同的通信技术实现可靠的安全方案,避免用户数据在传输过程中泄露,避免中间人攻击等安全风险。
根据多年开发经验总结,以上关键点是每一个进行直播系统开发的人都会遇到的,希望大家都能少踩坑,顺利开发出自己的直播系统。