简单实现局域网内像素流送的负载均衡
需求
运行像素流项目,在一台机子上最多只能开几个实例,我的机器 i9 10系列 rtx3080 最多运行2-3个实例(看项目大小). 继续开启实例时会报错
因为ue4像素流对单机多显卡的支持不是太好,若要扩展访问实例数量,则需要通过负载均衡来转发请求。
实现
通过nginx自带的负载均衡配置,转发访问。
通过ue4的局域网像素流多人访问配置,实现每次分配一个新实例给申请。
最后实现访问同一个地址,能根据负载均衡的配置,分配合适的目标服务器地址。
nginx的配置
打开nginx的配置文件
配置负载均衡
局域网多人像素流配置
实例配置
run.bat快捷方式添加命令,注意要有一个空格
--UseMatchmaker true --matchmakerAddress 192.168.1.58 --matchmakerPort 6666 --publicIp 192.168.1.58 --httpPort 80 --streamerPort 8888
--UseMatchmaker true //是否使用
--matchmakerAddress 192.168.1.58 //地址,如果是本机可以直接填127.0.0.1
--matchmakerPort 6666 //匹配端口号,与matchmaker一样
--publicIp 192.168.1.58 //对外访问ip
--httpPort 80 //本地访问端口号
--streamerPort 8888 //流端口,主要用于与实例匹配
实例快捷方式
-AudioMixer -PixelStreamingIP=192.168.1.58 -PixelStreamingPort=8888
同样的,其余实例配置
p2
run.bat 快捷方式
--UseMatchmaker true --matchmakerAddress 192.168.1.58 --matchmakerPort 6666 --publicIp 192.168.1.58 --httpPort 81 --streamerPort 8887
实例快捷方式
-PixelStreamingIP=192.168.1.58 -PixelStreamingPort 8887 -AudioMixer
p3
run.bat快捷方式
--UseMatchmaker true --matchmakerAddress 127.0.0.1 --matchmakerPort 6666 --publicIp 192.168.1.58 --httpPort 82 --streamerPort 8885
实例快捷方式
-PixelStreamingIP=192.168.1.58 -PixelStreamingPort=8885 -AudioMixer
若是在局域网内其他机器,则在匹配时匹配上相应的ip就行
运行验证
运行
nginx.exe
Matchmaker/run.bat
p1/ run.bat - 快捷方式 | SF0320.exe - 快捷方式
p2/ run.bat - 快捷方式 | SF0320.exe - 快捷方式
局域网内浏览器上访问 nginx 主服务器地址,比如说本机 192.168.1.58:8001
输入地址+端口号回车,自动转发到99端口自动匹配相对应的实例