项目简介
本项目是基于Go语言开发的直播系统,运用微服务框架达成功能解耦。系统涵盖多个服务模块,像基于Hertz的网关服务、用户信息服务、实时消息服务、消息处理服务、直播间管理服务以及抽奖服务等。各服务模块借助RPC通信,采用etcd实现服务发现,同时利用OpenTelemetry进行服务监控和追踪,能为用户提供直播、消息交互、抽奖、消息推送、直播回放等功能。
项目的主要特性和功能
特性
- 采用SSE推模型,降低消息推送延迟,实现实时消息推送。
- 有流式弹幕推送限流器,保障超大直播间弹幕推送的稳定性。
- 支持直播回放功能,便于用户回顾精彩内容。
- 用NSQ实现消息队列,减少请求时间,完成流量削峰,实现异步任务处理。
- 利用Jaeger监控和排查微服务架构中的请求链路,实现分布式追踪。
- 通过etcd实现配置共享和服务发现,保证数据存储的可靠性与一致性。
- 用对象存储数据库存储直播间封面和直播回放,节省服务器资源。
功能
- 用户服务:可处理用户登录、注册、密码修改等操作。
- 消息服务:能实现消息的发送、接收和删除功能。
- 直播服务:支持直播创建、观看、录制和结束等操作。
- 抽奖服务:提供抽奖设置、参与抽奖和结果查询功能。
- 推送服务:借助NSQ消息队列实现消息实时推送。
安装使用步骤
假设用户已下载本项目的源码文件,可按以下步骤安装和使用:
1. 环境准备:确保本地安装了Go语言开发环境,以及MySQL、Redis、NSQ、Jaeger、etcd等相关服务。
2. 配置文件:依据实际情况修改各服务模块下的config.yaml
文件,配置数据库连接信息、服务地址等。
3. 构建项目:进入各服务模块目录,执行build.sh
脚本进行项目构建。
4. 启动服务:使用docker-compose.yaml
文件启动相关服务,或分别启动各服务模块的main.go
文件。
5. 接口调用:参考API文档(https://console-docs.apipost.cn/preview/3afa23205f8cddef/d92b80e31c14eea9 )调用相应接口进行功能测试。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】