项目上线的时候,遇到一个诡异的问题:预上线环境不能复现,生产环境必现。而预上线环境和生产环境最大的区别就在于:预上线是单点应用服务,生产环境则是集群部署。
问题描述
项目概况:后台采用Spring Cloud生态搭建的微服务体系,前端为Vue框架,做了前后端分离。
日常情况下,都是单节点部署,不过也使用Eureka实现了服务注册和发现的机制,可以通过serviceId访问相关服务。前端请求都通过网关进行鉴权和转发,网关使用Zuul进行路径映射,同时由Ribbon进行负载均衡控制。
上线比较匆忙,调试为集群方式后就部署了。
前端有一个需求,是上传一些数据到后台服务,然后由后台服务生成Excel文件后供前端下载。之所以要上传到后端,是因为前台数据不足以或者不方便做这一部分复杂的Excel操作,同时要利用一下后台的相关数据和模板。
单节点情况下可以正常下载,集群部署后就开始出现404错误,页面刷白的情况。
前端代码
request().excel(data, command, function(success) {
vueObj.progressBarPercent = 100;
vueObj.progressBarVisible = false;
window.clearIn