项 目 :
石油党建
项目描述:
党建是由石油集团专门为党员打造的手机在线学习软件,员工可以通过它学习相关的
党建知识,随时开展沟通互动,方便党务人员和广大党员日常使用。信息实时感知、资源
在线共享、工作高效规范、活动丰富创新、数据辅助决策。把组织建在网上、把党员连在
线上,线上线下相互融合促进,充分体现党建工作的政治职能、管理职能和服务职能。采
用云计算、大数据、移动应用等技术,整合线上线下各类资源,为政府及事业单位、央企
/国企和军队提供先进、稳定的智慧党建产品,并配合各类业务场景提供信息化咨询、云服
务、运营等一体化服务。
项目岗位:Java开发工程师
项目职责:
积分管理:此模块是石油党建系统里使用频率最高的模块,用户使用党建系统时,有8种情
况下会获得积分,由于用户量大、使用频率高,导致积分数据量巨大,截止2019年年底,
石油党建系统里的积分明细数据已达到3.5亿条,由此导致数据库压力大、对系统的稳定性
造成一定的影响。为了在不删除数据的情况下减少积分数据库的压力,对积分管理模块成功
进行了以下优化:
1、性能:对积分明细数据进行压缩,只保留最近两个月的数据,按月将明
细数据压缩到月度表存储(支持按月快速查询),压缩比例达25:1以上,这样,积分明细数据总条数变成了原来的1/30(按天变成了按月),总数据量变成了原来的1/25数据(数据压缩),同时优化支部排行算法,通过以上措施,数据库的压力减轻了很多,数据存储空间也大为缩小,系统反应更快,达到性能优化目标。
2、完整性:由API调用改成消息队列,能对高峰期的积分请求进行缓冲,同时设立积分数据保存失败临时表,通过最终一致性算法,保证积分数据的完整。
3、数据库:由于数据量过大由Oracle改为MongoDB一套代码兼容两个两套数据库的改造
在线答题:
此模块是石油党建系统里使用频率比较高的模块, 有8种情况可以获得积分,
在线答题同样也承载了重要的一个环节,全由自己一人负责后台代码的维护及
2.0的开发,改模块涉及到统计功能,因数据量大造成数据库压力过大,优化
复杂SQL减轻数据库压力。为解决丢积分由之前的API调取积分埋点接口换
成通过RabbitMQ的方式实现;