直播系统微服务架构解决方案
前端: 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微服务架构
微服务介绍
- 轻松获得支撑百万日活服务的稳定性
- 内建级联超时控制、限流、自适应熔断、自适应降载等微服务治理能力,无需配置和额外代码
- 微服务治理中间件可无缝集成到其它现有框架使用
- 极简的 API 描述,一键生成各端代码
- 自动校验客户端请求参数合法性
- 大量微服务治理和并发工具包
压测数据
- 测试机:32核16G
- 压测工具:pushrtmp 以及 pullrtmp
- 推流码率:大概200kbps
| 推流数 | 拉流数 | CPU占用 | 内存占用 |
|---|---|---|---|
| 1000 | 1000 | 125% | 464M |
拉流的延迟200毫秒内