README.md 3.4 KB

系统简介

tnb 是一个 bilibili-like 的 VOD 系统, 使用前后端分离模式开发, 后端采用微服务, 整个系统包括下述项目:

  • tnb
    > tnb 后端系统
  • bnt
    > tnb 后台管理系统
  • oss-store
    > tnb 文件存储系统
  • tnbapp
    > tnb 前台应用

构建依赖

  • os:Linux
    > Windows 尚未实践
  • jdk:11
  • maven:3.9
  • node:v16.19.0
  • npm:8.19.3

第三方服务依赖

  • mysql:5.7
  • redis
  • rabbitmq
  • zookeeper:3.8.4
  • mongodb:4.4
  • elasticsearch:7.17.18

构建部署

构建部署流程如下:

  • 1.修改 tnb0/db/init_db.sh 脚本中 MySQL 的地址和帐号密码, 然后在 tnb0/db 目录下执行 init_db.sh 脚本初始化数据库
  • 2.修改 config/application.yml 文件中第三方服务依赖的地址和帐号密码等配置
  • 3.在 tnb0 目录下执行 build.sh 脚本构建应用
  • 4.构建成功后, 在 tnb0 目录下执行 start.sh 脚本启动所有应用 > > bntweb 应用默认会创建 /opt/data/bntdata 目录用于存放数据
  • 5.在 tnb0 目录下执行 shutdown.sh 脚本可停止所有应用

oss-store 应用

鉴于 oss-store 应用需要在本地磁盘上存储文件, 为了便于文件存储目录的更改, 故采用外部配置. 其配置文件(tmp/bin/oss-store/oss.yml) 的内容如下:

spring:
  datasource:
    url: jdbc:mysql://127.0.0.1:3306/reghao_oss_tdb?useSSL=false&useUnicode=true&characterEncoding=UTF-8&serverTimezone=GMT%2b8
    username: test
    password: Test@123456
server:
  tomcat:
    basedir: /opt/tmp/tomcat
oss:
  store-host: 127.0.0.1
  store-dirs:
  - /opt/disk/13f654c8-af87-4710-aac9-7aa086c99aec/
  console-host: 127.0.0.1

第一步, 修改 basedir, store-host, store-dirs, console-host 等配置

  • basedir
    > 上传文件时 tomcat 存放的临时目录
  • store-host
    > oss-store 应用所在机器的地址
  • store-dirs
    > 实际存放文件的目录, 可配置为多个目录, 但必须保证每个目录挂载到不同的磁盘
  • console-host
    > bntweb 应用所在机器的地址

若 oss-store 和 bntweb 部署在同一台机器上, 那么只需要修改 basedir 和 store-dirs

第二步, 然后切换到 tmp/bin/oss-store 目录下后执行 start.sh 脚本启动应用

oss-store 启动时会调用 bntweb 的 RPC 接口, 所以需要 bntweb 应用运行后再启动 oss-store

当然如果采用 aliyun-oss 存储文件, 那么就不需要使用 oss-store 应用

nginx 配置

首先配置 hosts 文件, 在hosts 文件中添加下述映射:

# 指向 oss-store
127.0.0.1 oss.reghao.cn
# 指向 tnb
127.0.0.1 api.reghao.cn
# 指向 tnbapp
127.0.0.1 tnb.reghao.cn
# 指向 bntweb
127.0.0.1 bnt.reghao.cn

然后配置 nginx, 详见 nginx/nginx.conf 和 nginx/conf.d/tnb.conf 文件

需要修改的是 nginx/conf.d/tnb.conf 文件中 tnb.reghao.cn 域名所在的 block

将 root 修改为 tmp/bin/tnbapp 目录的实际路径

由于项目中用到了 websocket, 因此需要留意 nginx 对 websocket 的转发

使用系统

后台系统地址(即 bntweb 应用)

http://bnt.reghao.cn

默认提供三个帐号:

  • 超级管理员帐号 admin
    > 帐号密码 admin12345678
  • tnb 系统管理员帐号 gjstnb
    > 帐号密码 gjstnb12345678
  • oss 系统管理员帐号 gjsoss
    > 帐号密码 gjsoss12345678

前台系统地址(即 tnbapp 应用)

http://tnb.reghao.cn