1.项目介绍
本项目用于当地拘留室,定位:监控、值班系统,项目时间:十二月。
系统涉及人员:值班人员、拘留人员
设备:摄像头(海康)、门禁(中控安防)、声光报警器(塔石)、一键告警器(海康)
2.服务
前后端分离
前端服务
框架语言:Vue
脚手架:Element-UI
主服务
编程语言:Java
框架:SpringBoot
消息队列:MqTT
关系型数据库:Mysql
非关系型键值对数据库:Redis
设备服务
编程语言:Java
框架:SpringBoot
非关系型键值对数据库:MongoDB
开发包:海康SDK
用户登录:
用户登录后进入操作面板,里面包含各种告警信息、环境信息等,还有直接的设备操作例如对讲/广播/开关门等。
实时预览
智能分析
后台管理
主服务内容:
设备管理:主服务添加设备,发送相关信息到设备服务,如果是海康设备则需要初始化登录,如果是安防设备则会主动发起心跳连接。场景管理:主服务可以添加相关场景任务,即当某个设备满足触发条件时将调用某个设备执行某些具体的操作例如抓拍/告警等。事件类型管理,定义设备的事件信息等级。区域管理:某个区域的信息以及CAD图。职位管理:关联区域以及关联事件类型,供角色绑定职位。和前端的设备告警信息和设备状态信息主要依靠mqtt协议。
设备服务内容:
主要是对设备的底层进行心跳、布防、撤防等操作,同时上传告警信息和自身状态信息。定时请求主服务获取场景任务列表,以便执行场景任务操作。还有重要的重连机制,定时刷新设备状态,掉线/断线设备及时登录注册布防等。
遇到过的问题:
1.海康SDK在linux环境中的配置一开始出现了问题,经仔细观察发现,在引入的自定义jar包中有早被定义过存放lib文件的路径,这点是不必要的因为设备服务已有路径定义,所以后续我将它注释掉了。
2.设备服务和主服务之间的交互本来是靠RocketMQ,但是服务上线后,发现还是有消息滞后、丢失的情况出现,这点是不可原谅的。开发环境下测试是OK的,正式环境就不行,所以我们怀疑是不是RocketMQ配置有问题,但因为刚接触不久还不太了解找出来也需要一定时间,所以后续我们改为http通信交互了。
体会心得:
学习到更多部署运维的知识还有一些重要的开发思路,也感谢同事的倾力相助,以及感谢领导们的大力支持,同时也要要求自己更加努力、谨慎、开放。