<项目描述>:该系统具有媒体资源管理,客户关系,节目制作,节目发布,硬件控制等模块,用户可以通过PC端、APP端、微信端实时管理自己所有的数字广告设备,如 LED 显示屏、数字标牌、广告机等。
<职责及技术实现>:
● 架构搭建:网站后端基于PHP的Yii框架实现,采用MySQL数据库,页面静态化采用了Redis进行缓存;前端采用Vue+Jquery
● 参与项目系统设计:采用c++设计了总控调度服务器,来处理节目下发,硬件控制,和播放日志回传;采用GO语言设计了push通道服务器,push和前端采用HTTP协议通信,push和硬件端采用tcp通信协议;
● 程序开发:负责媒体资源管理、节目管理、播放日志管理、客户关系、节目制作、节目发布、硬件控制、APPserver8个模块的开发:
(1)媒体资源管理模块:对用户上传的视频和音频文件转化为FFmpeg标准格式;对资源进行分类分组管理,采用sphinx进行资源搜索;
(2)播放日志管理:是系统的一个重要模块,涉及节目播放状态,数据异常等监测,采用取模分表,进行索引优化,来保证平台15w台设备,每天3000w万条日志的正常运行;
(3)客户管理模块:模块设计到用户充值,开发了微信支付和PayPal支付;采用了Oauth控制用户的权限;
(4)节目发布:因涉及到复杂大数据的读写过程,对数据库采用了读写分离,节目下发的过程中用redis队列保证了下发的顺序没有冲突,采用MySQL的乐观锁保证了一个设备下播放节目的时间不冲突;
● 系统测试:使用Sqlmap进行sql注入测试,采用Webshell测试服务器存在的安全问题;对日志查询采用ab压测,测试高并发访问对服务器的压力;
● 服务器部署:采用CentOS 服务器,通过负载均衡,使得服务器分压,采用Atlas+Keepalived实现MySQL读写分离,对MySQ进行主从热备份;
● 更新迭代:开发、迭代、测试均采用了git版本控制工具。
评论