算法服务平台-整体架构以及说明
1. 整体架构图
1.1 Client:可以是
1.1.1 终端设备
1.1.2 移动设备
1.1.3 浏览器
1.1.4 PC客户端
1.2 业务逻辑服务器:包括从基本的设置,从流媒体服务器取流,然后产生告警信息:不属于算法服务平台
1.3 SmartProxy功能
1.3.1 Http服务器,对外以Http+Json的方式提供服务
1.3.2 代理服务器,转发请求到对应的算法服务器SmartService
1.3.3 简单的负载均衡
1.4 SmartService:算法服务,根据配置启动对应的算法
1.4.1 以插件的形式加减算法服务
1.4.2 一个进程可以提供多种算法服务,(IP,Port)确定一个算法服务
1.4.3 SmartService启动的时候把提供的算法写到redis,退出的时候从redis删除对应的算法
1.5 Redis:缓存算法服务器的信息
1.5.1 每一种算法的名字作为key,类型为set,SmartService启动是把提供的算法服务的IP,Port添加到对应的key下,如下图所示:
1.5.2 SmartProxy定时从Redis上更新数据到本地(这样做主要是为了做负载,其实,请求来再查询也是可以的,或者说更好,定时更新会有延迟,当SmartService退出后,SmartProxy还没更新,SmartProxy请求会失败;当然,SmartService退出的时候广播一下也是可以的)
2. 使用到的库
2.1 Boost_1_61_0
2.2 Crow:Http库
2.3 Image_stone:将图片解码得到rgb数据,上传的数据可能是jpg,png,bmp的二进制
2.4 Opencv310
2.5 Rapidsjon:json编解码
2.6 Redis-3.0:Redis库
3. 测试
3.1 使用python测试:“单元”测试
3.2 访问主页,返回html测试页面,用于测试接口是否通