EasyCVR视频平台开发录像模块采用gRPC方式做负载均衡的步骤介绍

Posted easycvr

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了EasyCVR视频平台开发录像模块采用gRPC方式做负载均衡的步骤介绍相关的知识,希望对你有一定的参考价值。

gRPC 是一个高性能、开源、通用的 RPC 框架,基于 HTTP/2 标准设计,带来诸如双向流、流控、头部压缩、单 TCP 连接上的多复用请求等特性。在进行EasyCVR录像模块的开发时,由于视频录像合成处理模块十分消耗CPU性能,因此计划部署多个视频处理服务器以分布式方式部署,计划采用gRPC方式通信。

nginx1.13版本后支持gRPC协议,所以我们决定采用Nginx做负载均衡。

具体实现过程如下:

 

 

上图为Nginx实现gRPC负载均衡的配置文件示例,upstream为上游反向代理服务器的地址;Server为Nginx暴露外部的实际端口。

服务端代码示例如下:

 

 

服务端可以监听任意端口,开启服务,只需将服务端IP及端口配置到Nginx的Upstream模块。

客户端代码示例如下:

 

 

这里所有客户端程序只需要连接Nginx暴露的端口即可。

执行效果如下:

 

 

 

 

Nginx会根据配置文件的访问权重设置,自动对所有的连接进行负载均衡配置。由于不确定RPC请求具体会访问哪个服务器,因此还需要统一的文件服务器,但在此文中我们不做过多赘述。

 

以上是关于EasyCVR视频平台开发录像模块采用gRPC方式做负载均衡的步骤介绍的主要内容,如果未能解决你的问题,请参考以下文章

视频融合平台EasyCVR设备录像无法播放的问题排查与解决

硬盘录像机通过SDK接入EasyCVR,报错error code[13]是什么原因?

AI智能视频融合平台EasyCVR设备录像回看新增播放倍速

视频融合平台EasyCVR视频广场搜索新增通道检索功能

EasyCVR更新到最新版本,设备下不显示通道是什么原因?

EasyCVR平台云存储技术的应用场景解析