1. 导入导出服务。之前的导入导出功能跟主项目是在一起的,且是同步操作,经常因为这个耗时操作导致整个系统访问速度变慢。我单独写了一个导入导出服务,跟主项目用hessian做RPC远程调用,导入导出功能通过ActiveMQ放到消息队列中实现异步操作,避免影响主项目核心接口访问效率。
2. 管理员日报。每天凌晨统计每个企业的统计最新统计数据,更新到表中,第二天定时发送给各企业的管理员。由于是凌晨时段执行,且数据量很大,采用线程池+Future模式,开10个线程执行统计数据的查询任务,将查询结果放入Future列表,然后在主线程中取出统计数据进行保存。
3. 文档库模块重构。文档库模块原来是写在SSM项目中,页面是JSP格式。今年项目都在改为SpringCloud微服务模式,我主要负责了该模块的重构和前后端分离。远程调用采用feign客户端,服务熔断采用Hystrix,为了实现高亮搜索,数据同步到ElasticSearch(包括全量同步和增量同步)。
4. 数据大屏模块。这个模块主要是查询客户的一些业务数据,然后展示在大屏幕上。由于涉及的查询比较多,每次直接去查询,服务和数据库的压力都很大。所以采用在子服务每隔一段时间去查一次当前活跃客户的数据,然后缓存到Redis中。主服务的接口只负责从Redis中取出数据,返回给客户端。