一.分布式项目___污水处理项目
项目地址:https://gitee.com/yanyigege/collaborative-water-springboot.git
1.项目背景
总公司在全国各地有处理污水的项目部,各项目部处理自己的污水,总部需要监控各地分项目部每天处理污水的原料用量,掌握各分部的污水处理情况
2.功能需求(这里只做部分主要功能,具体项目过大,这里主要展示后端实现)
①:能够将给定的excel表格的数据导入到对应的数据库中
②:能够将数据库的内容统计并得出报表,得到某项目部某星期的各种数据
③:能够将某项目部xx年xx月xx日到xx年xx月xx日的数据导出为excel,方便抽查分部的日利润,重要工作汇报和大额费用支出
④:能够实现报警功能,在数据库中的数据发生异常(如某分部某个过程中某原料含量超标,这里是调节池COD含量前后两天差值>500)后,向管理者的邮箱(这里用qq邮箱)发送警告,管理者的手机发送短信警告,并且在项目部群中@全体成员发送警告
⑤:实现站内信功能(使用前端定时器每5秒刷新一次)
3.如何实现
导入与导出用到了easyExcel(可以使用easy-poi),统计报表用到了Echarts,报警上使用定时器,定时扫描数据库中是否有异常数据,在有异常时,采用消息队列(rabbitMq)发送警告,同时使用redis避免同一警告重复报警
4.环境搭建
项目环境:jdk:1.8
mysql:8.0.37(8.x版本)
nacos:2.4.3(集中管理服务配置,注册服务信息)
centos7:在虚拟机运行rabbitMq消息队列
redis:3.2.100(因做演示,redis在本地运行)
5.具体实现
导入功能(因做演示,不演示前端页面,使用postman测试功能):
报警功能(采用消息队列+定时器):
统计报表功能:
导出功能: