随着业务的发展,对数据的要求越来越高。
用户在浏览器中发送导出请求--web服务器接收请求- -请求后台获取数据- -汇总数据后生成excel或其他图标- -响应客户端
整个过程至少需要五个步骤就可以实现用户的目的。
但是,如果在任一位置发生错误,用户只能重新发送请求,然后等待。
随着数据需求的日益增长和增长,后台服务的压力越来越大,需要调配更多的系统资源来支持。
因此,分布式实现主要包括以下几个步骤:
步骤1 :接受请求
步骤2 :生成数据文件并保存在共享目录中
步骤3 :批量下载页面下载
其中使用的技术如下。
resin、kafka、redis、poi、NAS、后台服务器
1、web服务器收到请求后,将请求格式化并发送到kafka,在页面上回复“受理成功”。
2、后台服务器订阅kafka的特定topic,收到请求后进行处理。 这里可以实现很多控制,进行限制流程、资源调配等操作。
3、后台服务器按照指定的方法获取相关数据,使用poi技术生成excel文件,首先写入本地临时目录,然后移动到NAS共享目录。
4、生成特定标识,并将结果存储在redis中
5、用户进入下载页面,后台根据用户信息计算出特定标识,从redis获取结果并在页面上显示,通过页面下载功能完成最终文件的下载。
各模块之间的结合完全解除,没有相互影响的关系。
通过如上实现在实际生产环境中的应用,解决了实际问题。
希望对大家的实际工作有帮助。