peerstream像素流多服务器部署(多流实现原理)
想要实现无限路并发,单个服务器显卡槽数是有限的不能仅通过增加显卡来增大并发路数,所以我们要学会如何多服务器部署才能实现无限制流送并发。
准备工作:最少两台服务器,其中一台作为主服务器,其他作为副服务器
相关重要配置介绍:
signalPort:signal信令服务的端口
signalIp:signal信令服务的IP地址
execueIp:execue本地运行的IP地址,需要与signal.json中配置的machine的IP地址一致
1.https://github.com/inveta/PeerStreamEnterprise下载peerstream平台
2.主服务器配置signal.json和execue.json后运行
signal.json文件:
{
"PORT": "11188",
"auth": false,
"userpwd": "admin:dd2f757773f1fb6c690f3c1305c739bc4e8f35fd3e9eb69c4cdeb98d716f7eec",
"apiCors": false,
"exeUeCoolTime": 60,
"idleReleaseTime": 120,
"preloadReleaseTime": 15000,
"mouseReleaseTime": 0,
"SignalIp": "主服务器IP",
"globlesetting": {
"WebRTCFps": 30,
"ResX": "1920",
"ResY": "1080",
"Unattended": true,
"RenderOffScreen": true,
"AudioMixer": true
},
"machine": [
{
"ip": "主服务器IP",
"gpu": [
{
"gpucard": 0,
"gpumemory": 16
}
]
},
{
"ip": "副服务器IP",
"gpu": [
{
"gpucard": 0,
"gpumemory": 16
}
]
},{
"ip": "多显卡副服务器IP",
"gpu": [
{
"gpucard": 0,
"gpumemory": 16
},{
"gpucard": 1,
"gpumemory": 16
}
]
}
],
"ueprogram": [
{
"name": "PeerStreamDemo",
"path": "D:\\PeerStreamDeploy\\PeerStreamWin02\\Windows\\PeerStreamDemo.exe",
"urlprefix": "PeerStreamDemo",
"gpumemory": 4,
"ueversion": 5
}
],
"iceServers": [
{
"urls": [
"stun:stun.l.google.com:19302"
],
"username": "1",
"credential": "1"
}
],
"sqlite": false,
"allowAccess": []
}
execue.json文件:
{
"signalPort": 11188,
"signalIp": "主服务器IP",
"execueIp": "主服务器IP"
}
3.副服务器配置execue.json后运行即可,副服务器不需要管signal.json文件即便删除也不影响
execue.json文件:
{
"signalPort": 11188,
"signalIp": "主服务器IP",
"execueIp": "副服务器IP"
}
运行命令:
启动signal服务
node signal.js
启动execue服务
node execue.js
国产化部署注意:
以上是在Winodows系统上部署测试的,在国产化麒麟系统中部署需要注意几点:
1.给包执行权限
2.注意包路径
windows系统包路径是双反斜杠\\
"D:\\PeerStreamDeploy\\PeerStreamWin02\\Windows\\PeerStreamDemo.exe"
Linux系统包路径是正斜杠"/home/lenovo/UE/PeerStreamDeploy/LinuxPack/WebAndUE.sh"
3.像素流推之前先执行下.sh工程文件看是否启动正常,画面出不来考虑下显卡驱动是否匹配
个别参数重点解释:
| 配置位置 | 名字 | 意思 | 例子 单位G |
|---|---|---|---|
| machine | gpumemory | 显卡总共有多少显存 | 24 |
| ueprogram | gpumemory | 一个 UE 实例用多少显存,这是启动一个 UE 像素流实例时,预计要消耗的显存量。 | 8G |
