首页 > 其他 > 详细

记一次项目整体改造

时间:2019-05-05 14:41:18      阅读:113      评论:0      收藏:0      [点我收藏+]

背景:

  公司项目需要推广部署到多个客户,每个客户独立数据库,但使用的项目前后台及app使用的同一套业务。在不改变原调用链接的情况下,只部署一套代码。

需要解决的具体问题:

  1.不同链接需要统一跳转

  2.支持可配置的动态数据源切换

  3.为防止一套代码而带来的请求压力,需要做负载与备份

  4.因负载而带来的,项目中可变的静态常量处理

  5.因负载而带来的,项目中定时器的处理,不同项目(数据源)对应的定时器运行

  6.因负载而带来的,项目中文件的保存问题

解决措施

  1.应领导提议,项目现在由springmvc改为springboot框架,所以之前的项目链接都包含项目名。实现一个Filter,将原链接的项目名截取下来,并重定向到一个统一的请求路径

  2.这里通过继承实现AbstractDataSource类,将配置文件中的所有数据源实例化并保存,重写getConnection方法,通过1中截取的项目名,获取本次请求需要的数据源并建立连接

  3.这里通过nginx来配置负载与备份

  4.在每个数据库中建立一张常量表,项目初始化时分别查询所有数据源中对应的数据并储存,在接收到请求后获取本次请求需要的常量

  5.指定一个主定时器项目,在定时器运行时,读取项目配置,只有一个项目配置为定时器正常启动;定时器运行过程中,循环所有数据源,分别设置项目名,并执行业务

  6.因项目本身租用阿里云服务器,这里文件上传就直接上传至阿里oss服务器(备注:在nginx转发文件上传请求过程中,发现向非本机转发时,文件上传时间过长。解决办法:使用域名作为代理链接地址)

 

记一次项目整体改造

原文:https://www.cnblogs.com/gutaolei/p/10812872.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!