武汉博晟安全技术股份有限公司
技术负责人
互联网/电子商务| 企业性质:民营| 规模:100-499人
工作描述:入职起,在公司想打造互联网+内容+终端+平台的大环境下,对公司技术进行.net向java体系的过渡
任职期间,负责公司核心产品博晟云平台的研发(资源中心、授权中心、转码服务中控、培训平台、一账通sso)
以下为补充说明:
1、公司主要客户面向于央企(中铁、中建等国有大企业)并提供一站式的安全培训服务(平台 + + app + vr终端 + 手提工具箱),并主动承担全国安全知识月的全国范围和湖北省级范围的知识竞赛
2、以往架构为.net搭建, 无法满足央企人数的规模以及全国竞赛(人数40万、固定每年6月、平均每日两小时内4万人访问,并发量3000)
3、以往(.net)提供给客户的视频服务为自建机房提供,无法接入存储和cdn,存在出口带宽上限问题
解决方案:
进入公司后,着手.net平台过渡java体系的平台研发工作
1、云存储中间件:采用fastdfs搭建, 现有生产环境tracker 4个 ,group三组,每组两个storage存储节点(单个挂载2T硬盘)
问题及经验:01、现有fasfdfs满足小文件海量存储要求,因公司文档包括(pdf、ppt、excel、swf、flv、pm4)均不超过500M,满足要求。于2017年3月完成线上5.05版本至5.0.8的迁移并扩容(单storage有500G扩容至2T) 。02、fastdht去重不建议生产环境使用(原理还是计算文件md5,遇到大文件比较慢,一分钟左右)。03、fastdfs原有存储信息有redis迁移为mongodb,解决重启断电恢复缓慢问题。04、大文件(超过500M)进行分片存储,mongo积累节点信息(此部分逻辑根据业务自己拓展)05、不采用fastdfs自带防盗链,下方到应用网关进行token统一校验(方便拓展业务校验)。06、图片压缩下放至应用配合调用imagemagick生成实时缩略图,(加入缓存机制)
2、转码服务中控:依赖fastdfs存储服务而建立,负责公司文件(视频、文档)的转码等工作
问题及经验:01、为满足公司培训、考核等业务平台的要求,视频采用转码切片,文档进行转换。02、具体方案:flv、MP4等视频采用ffmpeg转码视频,转ts切片并生成m3u8,前端有videojs提供播放,excel/doc/ppt/pdf等文档采用jacob转全平台兼容的pdf格式, 前端采用pdf.js预览。03、整体机制采用quartz队列机制,保证最大限度的最先最快转码和切片,引入activemq消息机制接收和告知子系统
3、云平台-资源中心:提供公司100多号动画设计师完成课件制作(脚步、动画、多媒体的上传以及标签、知识点的制作)
问题及经验:01、此系统在满足内部使用的同时也需要提供给外网的其他合作伙伴使用(其他企业自建课程),所有整体架构采用springboot + dubbo开发,提取出一整套课程制作的接口,dubbo对内调研,rest接口暴露对外提供
4、云平台-授权中心(课程按各种形式(行业、版本)等授权给单位或者个人)
问题及经验:01、授权部分涉及到集团单位继承问题, 巧妙采用id基因法降低复杂度
02、个人和单位授权后期接入云平台统一支付中心完成用户自主购买和学习
5、云平台-培训平台(针对企业单位和个人提供的培训、考试、学习)
问题及经验:01、此平台面向互联网用户开放,以个人为中心(.net架构是以企业为中心)需要考虑并发和高可用问题。02、创建项目等耗时业务接入activemq异步处理, 部分业务表异构入mongodb 比如:学时表、统计表。03、为满足企业按天查询的统计需求,业务统计在数据罗盘进行,存储在mongo,采用原生mapreduce进行聚合统计。04、为满足竞赛需求,系统采用分布式架构(session统一托管入redis),加入消息队列异步解耦,loadruner压测:单台server(tomcat)在线数可达800 并发40 aliyun ecs
6、云平台-一账通(提供云平台下个子业务系统单点登录服务)
问题及经验:01、需解决子系统现有存在老账户和新用户的问题,采用一账通账户绑定子账户解决,一账通统一管理账户以及登录退出问题(cros跨域方案),具体业务权限有子系统自行解决(历史原因)
7、技术挑战
问题及经验:01、构建云平台的初期,系统配置项较多,后期统一由springmvc迁移至springboot + zk 配置统一管理 同时发挥springboot内嵌servlet容器的简便性