私域直播技术解决方案

317 阅读6分钟

技术要求: 做能承载百万并发的直播平台

源码地址:gitee.com/godsdodo/te… 在这里插入图片描述

涉及产品线:高并发缓存技术,短链分发,音视频整合,直播推流,主播端合并推流,OBS推 流,伪直播(拉流转推),微信开放平台,企业微信,支付宝支付,微信支付,直播聊天功能,音视频 分享,数据采集,直播人数统计,聊天日志分析,禁言拉黑IP,API高防,CND分发⻚面,CDN分发 视频,视频转码,直播压缩,electron打包分发技术,实时IP城市检索等;

直播技术栈:VOD,CSS,COS,CLB,TIM,TIW,TRTC,EONE,CVM,TSE,TKE和镜像

技术介绍: A,短链分发: 要求:设计高并发,高可用,防止被微信封杀,可切换域名 设计思路: a,企业自己用(选a);b,多租户售卖 开发:把短链域名和⻓链接域名1对1映射存到redis库 部署:域名挂载到CLB上,做负载均衡,可以在负载均衡上做高防;部署多台服务器,搭 建nginx,写lua脚本,做反向代理; 技术栈: redis, nginx,lua 压力测试:百万并发,没崩溃过; B,音视频整合: 要求: 可以分享视频(不让用户下载),直播中对视频做高延时,低延时,高清,标清,超 清处理 技术栈: VOD(腾讯云),CSS(腾讯云),域名和SSL 开发: 1,封装腾讯云基础API; 2,对视频的播放器处理,只用VOD的fileId技术,用腾讯视频号的技术,获取视频的fileId 和sign,传入到腾讯超级播放器中; 3,其中对视频 进行加密和限时处理

4,案例: C,直播推流,主播端合并推流: 技术栈: CSS,TRTC 开发和配制: TRTC旁路转推,java开发合流和录制视频; 涉及技术难点:旁路转推域名设置,回调配制,腾讯云直播中的断流和触发录制;合并 多路流视频到一路,节省带宽和CDN; D,OBS推流,伪直播(拉流转推): 技术栈: CSS 开发:封装腾讯云基础API ,结合前端观看地址,封装OBS推流的地址; 伪直播(拉流转推): 用视频做实时直播 E,微信开放平台,企业微信,支付宝支付,微信支付,商品优惠券: 要求: 企业可以溯源的unionId,打通客户的企业微信,接入支付宝支付,微信支付; 开发: 1,申请微信开放平台,开发微信回调; 2,开发标准接口:客户可以把企业数据批量传数据到神行平台; 3, 接入企业微信跟进人和协助人数据,打通并双向绑定; 4,申请支付宝账户,开发支付宝回调; 5,申请微信支付,开发微信支付回调; 6,优惠券减免时,触发的支付宝与微信支付要前后端双向验证;

F,直播聊天功能 要求: 用户端,助理端,讲师端互相联通 开发: 1, 封装腾讯云IM ;对直播群做数据处理 2,发送内容: 图文,聊天,商品开关,商品上下架和不同推荐位,商品售馨,机器人消息, 场控氛围,优惠券的上下架推荐,禁言和解禁,消息审核,各类信息封装不同字段 3,控制台和前端对不同场景的定义的字段做不同的业务逻辑调整; G,数据采集: 要求: 处理高并发的上报接口; 开发思路: 1,做一个高防接口,防攻击;2,用腾讯云Im接口,能承载百万人的聊天(省 钱); 开发选2; 用腾讯云免费的im接口,上报数据,后端筛选回调上报的数据内容,放到 kafka中,再通过消费者入库; 开发难点:怎么把用户日志传到腾讯云的im中,怎样接收用户上报的高并发数据 开发成果: 节省高防费用,节省服务器费用,节省相间数据传输流量,隐藏用户上报 的接口 H,直播人数统计: 要求: 直播间有热度和基础人数; 开发: 直播间基础信息存储到缓存中,用户打开⻚面后会获取直播间缓存,用户真 实人的统计,是通过腾讯云的im回调判断用户离线和在线,把真实人数存到redis中; 开发难点: 腾讯云的群有不同的隐藏区别,踩了不少坑; I,API高防,CND分发⻚面,CDN分发视频: 要求:省钱,省流量 开发思路: 1,搭建雷池高防(已经搭建测试平台,效果好,⻓期运维需要人力费用) 2,扩展思路,与腾讯云商务交涉

商务交涉: 与腾讯云商务交涉后,做了一个新产品,高防几乎免费; 成果:技术解决不了事情,商务可以解决 J,视频转码,直播压缩: 要求:省钱,省流量 开发: 封装腾讯云API,配制腾讯云相关云业务参数; 结果: 1,视频转码后,节省大流量费用; 2,直播压缩后节省流量30~40%以上; 3,智能直播(伪直播)再上面的基础上,再节省费用30%; K,electron主播端打包分发: 主播端开发:白板,聊天,推流,摄像头占用,16:9和9:16技术; 打包:技术1,分发到COS上,通过更新包,可以实时推送 技术2 ,通过⻚面封装,更快的推送给用户 L,jenkins 自动发布技术: 要求:仅用一个链接就可以更新软件版本,并自动发布技术,做CICD 技术栈:腾讯云coding技术,jenkins,腾讯云K8S(TKE) 技术成果: 通过一个url链接就可以触发一个项目模块的更新与发布; M,高并发技术: 要求:1,做能承载百万并发的平台,2,省钱 开发难度: 集群和容灾,数据库的缓存开发,前端压缩,高防配制, 技术栈: 腾讯云K8S(TKE) ,redis 缓存 ,mongodb,dubbo 运维和开发: 1, 通过对K8S做任务与弹性伸缩,任务扩容;可以做到百万并发;

2,redis,mongodb缓存技术在代码中,经过反复数据校验,加dubbo技术,可以对每个 应用模块做高性能负载; 3,对前端⻚面做极致压缩,原8M的⻚面,压缩到400KB,节省CDN流量; 4,内网负载: 搭建VPC,内网带宽200G/s,串联所有服务与数据库的节点; 模拟流量: JMeter,GoReplay,真实采集 结果: 通过技术上的极致优化和压测,模拟真实流量,成功做到了高并发的直播平台

O,技术选型: k8s, springcloud, dubbo ,nacos, 大模型语言库 ,报错日志库 搭建: springcloud + dubbo +nacos +k8s 框架 开发辅助: 搭建大模型语言库平台,员工登陆VPN后,辅助开发 框架日志全局封装: 把spingboot的产出的日志用UDP协议传到 graylog+elasticsearch+mongodb 搭建报错日志库: 开发人员可以直接检索报错和程序运行日志 P,分布式任务调度: 搭建:xxlJob+xxlJobAdmin 任务处理:订单场控调度,每天凌晨4点同步用户渠道排行数据,循环排查智能模版 转码是否完成,每半个小时直播观看记录表,每分钟统计一次渠道在线数据,每分钟统计一次 在线数据

源码地址:gitee.com/godsdodo/te…

全代码 搭建 联系微信

在这里插入图片描述