一对多直播系统开发,百万用户在线,直播弹幕系统是如何实现的?
2020年因为受到疫情的影响,各种电商直播纷纷涌入大家的视野,很多商家都通过直播的方式来售卖自己的产品。直播弹幕是直播系统的核心功能之一。如何迅速作出一个有很好扩展性的弹幕系统?如何应对业务迅速发展?相信很多工程师/架构师都有自己的想法。哔哩哔哩作为国内首屈一指的弹幕视频网站,今天我们就一起来看看他们是如何做的。 一对多直播系统开发,重点是这些 高并发实时弹幕是一种互动的体验。对于互动来说,考虑最多的地方就是:高稳定性、高可用性以及低延迟这三个方面。 高稳定性,为了保证互动的实时性,所以要求连接状态稳定。 高可用性,相当于提供一种备用方案,比如,互动时如果一台机器挂了,此时必须保证可以和另外一台机器连接,这样就从侧面解决了用户连接不中断的问题。 对于低延迟,弹幕的延迟周期控制在 1 秒以内,响应是比较快的,所以可以满足互动的需求。 一对多直播系统开发,GOIM 系统的优化之路 一、内存优化 内存优化主要分为以下三个方面: 1.一个消息一定只有一块内存 使用 Job 聚合消息,Comet 指针引用。 2.一个用户的内存尽量放到栈上 内存创建在对应的用户 Goroutine(Go 程)中。 3.内存由自己控制 主要是针对 Comet 模块所做的优化,可以查看模块中各个分配内存的地方,使用内存池。 二、模块优化 1.消息分发一定是并行的并且互不干扰 要保证到每一个 Comet