【疑难解决】网络穿透/云端组网/视频RTMP推流服务平台EasyNTS上云网关经常掉线重连,如何解决?

TSINGSEE青犀视频研发团队在EasyNTS上云网关中集成了RTMP推流功能,并解决了推流过程中因读锁和写锁冲突导致的系统卡死问题。通过调整为从数据库读取数据的方式,有效避免了死锁现象,确保了设备稳定运行。

TSINGSEE青犀视频研发团队前段时间将RTMP推流功能集成到了EasyNTS上云网关内,EasyNTS不仅可以支持网络穿透、云端组网,现在也能够作为视频推流辅助设备,将RTSP、RTMP、HTTP、HLS拉取到本地并推到RTMP流媒体服务器上。

Modular_4.4cba27b.png

近期TSINGSEE青犀视频研发团队在配置EasyNTS上云网关的硬件时,发现设备在上线到EasyNTS管理平台后,运行无规则的时间内会出现短时间的下限,随后上线。在使用上,这种情况会造成配置的不便。

微信截图_20201020103512.png

我们排查到推流服务运行,才发现在推流的时候统计流量的时候,因为读锁和写锁出现冲突,造成死锁,导致系统卡死,然后重启。

因此解决方法就是,在遍历map集合的操作,变成读取数据库的操作这样可以避免在遍历map集合时候读取和写入操作出现冲突。参考代码如下:

func Sate() {
   var channels []*do.TChannelInfo
   dao.DB().Find(&channels)
   for _, v := range channels {
      if v.IsEnable == 1 {
         stream.SetClientRateSin(fmt.Sprintf("%s - 拉流", v.Name), stream.GetClientRate(fmt.Sprintf("%s - 拉流", v.Name))/5)
         stream.DelClientRate(fmt.Sprintf("%s - 拉流", v.Name))
      }
   }
}

修改后再次运行EasyNTS上云网关,设备保持正常在线。

24.png

EasyNTS视频上云网关平台采用MQTT加密协议,具有运算速度快,安全性高,资源损耗低的优势,在银行政府等机构广泛使用,高性能,高可用。如果大家对此感兴趣,欢迎联系我们了解咨询。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值