littlebot
Published on 2025-04-10 / 2 Visits
0

【源码】基于Go语言的直播系统

项目简介

本项目是基于Go语言开发的直播系统,运用微服务框架达成功能解耦。系统涵盖多个服务模块,像基于Hertz的网关服务、用户信息服务、实时消息服务、消息处理服务、直播间管理服务以及抽奖服务等。各服务模块借助RPC通信,采用etcd实现服务发现,同时利用OpenTelemetry进行服务监控和追踪,能为用户提供直播、消息交互、抽奖、消息推送、直播回放等功能。

项目的主要特性和功能

特性

  1. 采用SSE推模型,降低消息推送延迟,实现实时消息推送。
  2. 有流式弹幕推送限流器,保障超大直播间弹幕推送的稳定性。
  3. 支持直播回放功能,便于用户回顾精彩内容。
  4. 用NSQ实现消息队列,减少请求时间,完成流量削峰,实现异步任务处理。
  5. 利用Jaeger监控和排查微服务架构中的请求链路,实现分布式追踪。
  6. 通过etcd实现配置共享和服务发现,保证数据存储的可靠性与一致性。
  7. 用对象存储数据库存储直播间封面和直播回放,节省服务器资源。

功能

  1. 用户服务:可处理用户登录、注册、密码修改等操作。
  2. 消息服务:能实现消息的发送、接收和删除功能。
  3. 直播服务:支持直播创建、观看、录制和结束等操作。
  4. 抽奖服务:提供抽奖设置、参与抽奖和结果查询功能。
  5. 推送服务:借助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】