当前位置: 首页 > news >正文

项目 - 后端技术栈转型方案

前言

某开发项目的后端技术栈比较老了,现在想换到新的技术栈上。使用更好的模式、设计思想、更合理的架构等,为未来的需求迭代做铺垫。怎么办呢?假设系统目前在线上运行着的,直接整体换的话耗时太久,且中间还有新的需求植入。有没有什么办法,可以让我慢慢的将整体系统迁移到新的技术栈上。特别是跨语言的迁移。
举例
如后端语言(java、python、go) 转 后端php
或是 php本身使用的技术栈比较老,想换到新的技术栈上。

答案是有的。

本篇适合任何语言的技术栈迁移

方案设计

在这里插入图片描述
流程图

我们在新域名(新的技术栈) 和 旧域名(旧的技术栈)之上,抽一层出来(API 网关),所有流量都需要走API网关,经由API网关策略来确定将此流量分发给新域名还是旧域名。

新域名
1、实现业务功能并对外提供接口时,要考虑到不影响旧技术栈的业务使用。
2、基于新的架构和技术栈开发相关功能
3、假设在开发中,旧域名有新的需求任务且正在开发。则需分析新需求,评估牵涉开发内容,在新体系中同步做出相应开发调整

旧域名
1、减少新的需求接入(在系统底层迭代开发期间,最好不再收取新的需求迭代开发)
2、保证系统的稳定运行(业务功能一旦迁移至新域名后,系统运转有出现异常问题,要能快速切换旧域名完成回退)

API 网关
1、新域名每完成一个业务功能,就把API网关的相关业务功能路由映射由原旧域名转到新域名上。

新问题:如何保持用户会话?
方案1:分析就技术栈的用户会话信息的存储介质是以database在存储,还是以redis、memcache在存储。然后新域名模拟旧技术栈的业务实现获取用户信息。
方案2:旧域名提供一个接口,供新域名调用。此接口可通过签名或是cookie获取用户信息。新域名可通过此接口完成相关业务功能。

总结

基于以上思路,可以慢慢的把业务从旧域名迁移到新域名。

http://www.lryc.cn/news/147763.html

相关文章:

  • Oracle权限语句
  • 微信小程序发布一个npm包
  • Pytorch-lightning简介
  • 【ES6】迭代器Iterator
  • 火狐浏览器使用scss嵌套编写css无法识别问题
  • Kotlin的Lambda闭包语法
  • day-01 Docker
  • ARM开发,stm32mp157a-A7核SPI总线实验(实现数码管的显示)
  • 思路灰度传感器及红外传感器线序
  • squid服务器
  • spring的后置处理器BeanPostProcessor
  • vue、uniapp中动态添加绑定style、class 9种方法实现
  • 【CicadaPlayer】seek :SeekInCache(int64_t pos)的实现
  • 【C/C++】x -x 的含义
  • [ZenTao]源码阅读:加载自定义任务类型
  • hive分区表 静态分区和动态分区
  • java八股文面试[多线程]——ThreadLocal底层原理和使用场景
  • Android hid发送apdu格式数据
  • Unity碰撞检测(3D和2D)
  • android:控件TextView
  • 3D风速仪 Gill Instruments Limited_R3-50 R3-100 and R3A -100 Manual
  • 深度学习怎么学?
  • WPF 数据验证
  • IDEA的maven想显示层级关系,而非平级
  • (八)k8s实战-身份认证与权限
  • 数学建模:TOPSIS分析
  • 【Qt学习】10 利用QSharedMemory实现单例运行
  • FPGA应用于图像处理
  • vscode python 无法引入上层目录解决
  • [开发|java] java list 取某个属性最大的项