时信魔方的服务器由四个主要组件构成:
- 网关层的分发器/调度机。
- 业务功能单元。
- 集群管理器与控制台。
- 媒体数据传输与处理单元。
下图是时信魔方3.0的整体结构图:
其中,服务器的主要工程是 cube-server 和 cube-media-unit 。
- cube-server 包含了分发器、服务单元和集群控制器等主要组件。
- cube-media-unit 包含了 RTC 流服务器和 Live 流服务器。
这里主要讲解如何启动 cube-server 工程里的分发器和服务单元。有两种方式来快速启动服务器程序,一种是通过获取 Docker 镜像来启动程序,另一种是通过编译源码来启动单机版程序。
使用 Docker 镜像运行服务器
首先,在需要运行 Docker 容器的机器上安装好 Docker 相关服务,这里略过,你可以到官网查看安装文档。
Docker 安装之后,拉取 cube-server 镜像:
docker pull cubestack/cube-server
启动容器加载镜像:
docker run -it -d --restart always --name cube-server -e TZ=Asia/Shanghai -p 7000:7000 -p 7070:7070 -p 7077:7077 -p 7010:7010 -p 7017:7017 cubestack/cube-server
如果需要查看终端日志,使用命令:
docker logs -f cube-server
编译源代码运行服务器
目前时信魔方服务器支持的操作系统:Ubuntu 、CentOS 、Debian 、Fedora 和 openSUSE 。
1. 工具与软件准备
您需要在您的开发环境中正确安装以下工具:
-
安装 Java SE 。建议从 Oracle 官网下载安装包后,按照安装程序引导进行安装。Cube Server 需要的最低版本为 Java SE 8 。
-
安装 Apache Ant 。
适用 Ubuntu 的安装命令:sudo apt-get install ant
适用 CentOS 的安装命令:yum -y install ant
-
安装 gcc 、make 、cmake 等。
适用 Ubuntu 的安装命令:sudo apt-get install build-essential
适用 CentOS 的安装命令:yum groupinstall "Development Tools" "Development Libraries"
2. 下载工程源码和依赖库
从 cube-server 获得 Cube Server 的源代码。克隆 cube-server 代码库:
git clone https://gitee.com/shixinhulian/cube-server.git
从 cube-server-dependencies 获得 Cube Server 需要的依赖库。克隆 cube-server-dependencies 代码库:
git clone https://gitee.com/shixinhulian/cube-server-dependencies.git
需要注意以下事项:
- cube-server 和 cube-server-dependencies 目录同级。
- 不能修改 cube-server-dependencies 的工程目录名。
就绪的工程目录结构如下:
├── cube # 您创建的用于放置 Cube Server 的目录
├── cube-server # cube-server 代码库目录
└── cube-server-dependencies # cube-server-dependencies 代码库目录
3. 运行构建命令
从代码库下载代码之后,进入 cube-server 项目目录依次执行以下步骤来进行项目构建。
- 构建调度服务器和服务单元服务器,执行构建命令:
ant build-all
。如果需要构建 Debug 版本,使用命令:ant build-all-debug
。
执行构建命令之后,会在项目目录的 build
子目录下生成各工程的工程输出文件。
- 执行部署命令:
ant deploy
,将编译成功的工程文件安装到部署目录下。
4. 启动与停止服务器
- 启动服务器。进入
deploy
目录,执行start.sh
脚本。
cd deploy
./start.sh
启动脚本将同时启动分发器和服务单元服务器。 deploy
目录下的 logs
目录是服务器程序的默认日志目录。可使用 tail
命令跟踪日志内容。
- 停止服务器。进入
deploy
目录,执行stop.sh
脚本。
cd deploy
./stop.sh
停止脚本将同时停止分发器和服务单元服务器。
从源码编译的工程所使用的配置为单机最小依赖配置,可直接运行,不需要安装数据库和其他缓存服务。
您可以通过以上两种方式来快速启动时信魔方服务器程序。分发器对外服务使用的端口:
- 7000 TCP - SHM 协议端口,移动客户端和桌面客户端的默认连接端口。
- 7070 WS - WebSocket/SHM 协议端口,Web 端的默认连接端口。
- 7077 WSS - TLS/WebSocket/SHM 协议端口,Web 端使用 HTTPS 协议时使用的端口。
- 7010 HTTP - HTTP only Partial Content 用于文件传输使用的端口。
- 7017 HTTPS - TLS/HTTP only Partial Content 用于文件传输使用的端口。
分发器和服务单元的连接端口是 6000 和 6080 端口。
作者:徐江威
日期:2020年12月23日
邮箱:xujiangwei@spap.com, hermit86@163.com