一对多直播系统开发,百万用户在线,直播弹幕系统是如何实现的?

author author     2022-12-10     779

关键词:

2020年因为受到疫情的影响,各种电商直播纷纷涌入大家的视野,很多商家都通过直播的方式来售卖自己的产品。直播弹幕是直播系统的核心功能之一。如何迅速作出一个有很好扩展性的弹幕系统?如何应对业务迅速发展?相信很多工程师/架构师都有自己的想法。哔哩哔哩作为国内首屈一指的弹幕视频网站,今天我们就一起来看看他们是如何做的。
一对多直播系统开发,重点是这些
高并发实时弹幕是一种互动的体验。对于互动来说,考虑最多的地方就是:高稳定性、高可用性以及低延迟这三个方面。
高稳定性,为了保证互动的实时性,所以要求连接状态稳定。
高可用性,相当于提供一种备用方案,比如,互动时如果一台机器挂了,此时必须保证可以和另外一台机器连接,这样就从侧面解决了用户连接不中断的问题。
对于低延迟,弹幕的延迟周期控制在 1 秒以内,响应是比较快的,所以可以满足互动的需求。

技术图片

一对多直播系统开发,GOIM 系统的优化之路
一、内存优化
内存优化主要分为以下三个方面:
1.一个消息一定只有一块内存
使用 Job 聚合消息,Comet 指针引用。
2.一个用户的内存尽量放到栈上
内存创建在对应的用户 Goroutine(Go 程)中。
3.内存由自己控制
主要是针对 Comet 模块所做的优化,可以查看模块中各个分配内存的地方,使用内存池。
二、模块优化
1.消息分发一定是并行的并且互不干扰
要保证到每一个 Comet 的通讯通道必须是相互独立的,保证消息分发必须是完全并列的,并且彼此之间互不干扰。
2.并发数一定是可以进行控制的
每个需要异步处理开启的 Goroutine(Go 协程)都必须预先创建好固定的个数,如果不提前进行控制,那么 Goroutine 就随时存在爆发的可能。
3.全局锁一定是被打散的
Socket 链接池管理、用户在线数据管理都是多把锁;打散的个数通常取决于 CPU,往往需要考虑 CPU 切换时造成的负担,并非是越多越好。
模块优化的三个方面,主要考虑的问题就是,分布式系统中会出现的单点问题,即当一个用户在建立链接后,如果出现故障,其余用户建立的链接不能被影响。
测试是实践过程中最不可缺少的一部分,同时,测试的数据也是用来进行参考比照的最好工具。

四、使用长连接替换短连接轮询方案

长连接整体架构图

技术图片

长连接业务模块用于用户进入直播间的验证工作;
服务端之间的通讯使用基础研发团队研发的 tardis 框架来进行服务的调用,该框架基于 gRPC,使用 etcd 做服务发现。
我们采用了订阅推送模型,举例说明,用户 1 订阅了 A 直播,A 直播有新的消息:
推送层查询订阅关系后,知道有用户 1 订阅了 A 直播,同时知道用户 1 在连接层 1 这个节点上,那么就会告知连接层有新的消息;
连接层 1 收到告知消息后,会等待一小段时间(毫秒级),再拉取一次用户 1 的消息,然后推送给用户 1。
如果是大直播间(订阅用户多),那么推送层与连接层的告知/拉取模型,就会自动降级为广播模型。
五、直播弹幕优化的最终瓶颈只有流量
1.调节用户最优接入节点
使用 Svrlist 模块支持,选取距离用户最近的最稳定的节点,调控 IP 段,然后进行接入。
2.IDC 的服务质量监控:掉线率
判断一个节点是否稳定,需要不断收集大量的用户链接信息,此时就可以使用监控来查询掉线率,然后不断调优,收集最终的结果去做一个拓扑图(全国范围),在拓扑图当中就可以判断出城市到机房之间的最优线路。
3.流量控制
对于弹幕来说,当用户量到达一定级别时,需要考虑的问题还是流量控制,这也是对于花销成本的控制,当买的机房的带宽,是以千兆带宽为计费标准时,当有超标时,一定要将超标部分的流量切走,以此实现了流量控制的功能。

直播平台搭建新未来:一对一直播系统软件开发

偶然的一次下载让我了解到了某一对一直播app,作为一个业内人士,习惯了各种直播软件都显的有些麻木,但这次不经意间的发现让我突然来电,全新的直播方式:一对一直播。2016到现在直播行业如火如荼,很多人认为一对多直... 查看详情

百万人在线的直播间实时聊天消息分发技术

随着直播类应用的普及,尤其直播带货概念的风靡,大用户量的直播间场景已然常态化。大用户量直播间中的实时互动是非常频繁的,具体体现在技术上就是各种用户聊天、弹幕、礼物、点赞、禁言、系统通知等实时... 查看详情

im即时通讯开发:百万人的直播实时聊天消息分发技术

随着直播类应用的普及,尤其直播带货概念的风靡,大用户量的直播间场景已然常态化。大用户量直播间中的实时互动是非常频繁的,具体体现在技术上就是各种用户聊天、弹幕、礼物、点赞、禁言、系统通知等实时消息如此大... 查看详情

如何设计一个70w在线人数的弹幕系统?

.../03-31-2019/live-streaming-danmaku.html背景为了更好的支持东南亚直播业务,产品设计为直播业务增加了弹幕。第一期弹幕使用腾讯云支持,效果并不理想,经常出现卡顿、弹幕偏少等问题。最终促使我们开发自己的弹幕系统。性能要求... 查看详情

怎么开发一对一直播平台系统?一对一直播源码重点功能

一对一直播平台系统是直播行业发展至今,作为一种全新的“直播+社交”形式出现在人们视野里的软件系统。那么一对一直播平台系统该如何开发呢?与传统的直播平台开发又有哪些不同呢?一对一直播系统,它的直播实现流... 查看详情

一对一直播系统源码开发需要哪些基础功能

...越来越深入,对功能与技术方面的开发也越来越完美,而一对一直播系统源码的诞生正验证了此话,一对一直播系统源码的搭建正是挣脱了传统直播的局限,获得行业的突破口。那么开发一对一直播系统源码都需要哪些基础功能... 查看详情

一对一直播系统源码开发需要用到哪些技术

一对一直播系统源码以一种全新的直播社交方式崛起,成为了直播行业中又一次火爆的应用领域。和传统的直播搭建形式相同,一对一直播平台系统源码也要通过一套功能全面的一对一视频直播源码来完成直播平台开发搭建。&nb... 查看详情

一对一直播引领风潮,关于一对一直播不得不说的重点

...播平台粉丝越来越注重跟主播的互动性,同时也更加强调一对一直播,保证了直播内容的私密性。那么一对一直播系统在开发过程中需要注意些什么呢?一、重点事项:一对一直播系统所遵循的直播流程同我们常见的直播系统流... 查看详情

高并发实时直播弹幕研发实践

高并发实时直播弹幕研发实践直播间特点聊天室限制人数的原因应对万级以上的实时互动跨服务器是为了解决单一服务器接入数量限制、发布消息吞吐限制等问题;多进程并发则是为了充分利用多核CPU以及减小一个循环规模从而... 查看详情

小主播“无人问津”直播行业如何避免?

不管是直播,还是一对一直播,亦或是短视频,这几年的发展,都出乎人们的意料。随着直播行业的兴起火爆,数据显示,2017年中国在线直播用户规模达到3.98亿,预计2019年将突破5亿。直播行业围绕其诞生的各种新兴职业也开... 查看详情

视频直播系统

网络直播平台爆发期 大概是从2014年下半年来,直播就成了中国互联网一个热门关键字。各式各样、各种定位的直播平台不断的如雨后春笋,层出不穷。据统计,在2015年中国的在线直播平台有接近200家数量之多,直播平台覆... 查看详情

一对一直播系统源码,如何保证直播时的音画同步?

一对一直播系统源码的使用体验会受到多种因素的影响,像延迟、卡顿、网络、音画不同步等,其中音画不同步的情况,虽然人们通过肉眼就能很轻松的辨别,但如果是时间戳导致的音画不同步,播放器很难判断出的,因此在排... 查看详情

“遍体鳞伤”的直播开发:一对一源码+一对多+商城,能否“梅开二度”

“春花秋月何时了,往事知多少?”对于风生水起的自媒体直播平台,首先是流量向头部平台集中,所有流量会涌向这些大财团、大资本支持的平台;第二是运营方式将更加多元化;第三是行业TOP3将更加明显,中小平台的生存... 查看详情

为什么一对一直播系统源码功耗高,这些原因你了解吗?

我们在使用一对一直播系统源码直播过程中,有时会出现设备发热严重、耗电量过大的情况,而导致这种情况发生的根本原因是CPU或GPU的占有率过高,所以在一对一直播系统源码搭建之前,我们需要详细了解一下导致CPU/GPU占用... 查看详情

一对一社交直播相对于一对多有什么优胜点

...平台未涨粉甚至反掉粉150万。随着越来越多“名人”尝试一对多直播折戟,让业界抛出一个疑问,连粉丝无数的傅园慧、PAPI酱直播都会因为准备不足失败何况普 查看详情

一对一社交直播相对于一对多有什么优胜点

...平台未涨粉甚至反掉粉150万。随着越来越多“名人”尝试一对多直播折戟,让业界抛出一个疑问,连粉丝无数的傅园慧、PAPI酱直播都会因为准备不足失败何况普 查看详情

通过直播系统源码如何搭建手机直播平台!

打造一个属于自己的直播系统平台,同时在线观看人数10W人,直播效果流畅清晰不能卡顿。需要准备哪些前期的工作?技术的门槛有多高?资金需要多少?小编给大家普及下经验希望能帮助到创业者和从业者们!搭建直播平台,... 查看详情

100w人在线的弹幕系统,是怎么架构的?

...用户同时在线的弹幕系统背景为了更好的支持shopee东南亚直播业务,Shopee平台产品设计为直播业务增加了弹幕。第一期弹幕使用腾讯云支持,效果并不理想,主要问题是:经常卡顿、弹幕偏少等问题。最终促使Shop... 查看详情