時信魔方的伺服器由四個主要元件構成:
- 閘道器層的分發器/排程機。
- 業務功能單元。
- 叢集管理器與控制檯。
- 媒體資料傳輸與處理單元。
下圖是時信魔方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