直播系统微服务架构方案

206 阅读1分钟

直播系统微服务架构解决方案


前端: VUE 移动端: android + ios + uniapp

微服务(K8s,Docker容器)组成:

  • goim :不多说 B站IM架构
  • 流媒体服务器 :golang开发的流媒体服务器,支持RTMP/WebRTC/HLS/HTTP-FLV/SRT/GB28181。
  • webrtc :Janus Gateway:Meetecho优秀的通用WebRTC服务器(SFU);
  • MongoDB :云时代构建的基于文档的分布式数据库;
  • Redis:内存中的数据结构存储,用作数据库,缓存和消息代理;
  • kafka :队列 群聊,私聊,消息通知等。
  • Coturn :TURN和STUN Server的开源项目;
  • Nginx :高性能负载平衡器,Web服务器和有HTTP3 / Quiche和Brtoli支持的反向代理;
  • Docker:用于构建、部署和管理容器化应用程序的平台。
  • 后台管理界面: php版 | golang版 + vue + Element-UI

博客地址:blog.csdn.net/u012115197/…

Github: github.com/qmcloud/mom…

Gitee:gitee.com/baoyalive/b… (历史代码备份)

文档地址:www.onionnews.cn/


前端展示 前端展示

后台界面 后台界面


技术结构

golang微服务架构

架构图 微服务介绍

  1. 轻松获得支撑百万日活服务的稳定性
  2. 内建级联超时控制、限流、自适应熔断、自适应降载等微服务治理能力,无需配置和额外代码
  3. 微服务治理中间件可无缝集成到其它现有框架使用
  4. 极简的 API 描述,一键生成各端代码
  5. 自动校验客户端请求参数合法性
  6. 大量微服务治理和并发工具包

压测数据

  • 测试机:32核16G
  • 压测工具:pushrtmp 以及 pullrtmp
  • 推流码率:大概200kbps
推流数拉流数CPU占用内存占用
10001000125%464M

拉流的延迟200毫秒内

延迟测试