前言
某開發(fā)項目的后端技術(shù)棧比較老了,現(xiàn)在想換到新的技術(shù)棧上。使用更好的模式、設(shè)計思想、更合理的架構(gòu)等,為未來的需求迭代做鋪墊。怎么辦呢?假設(shè)系統(tǒng)目前在線上運行著的,直接整體換的話耗時太久,且中間還有新的需求植入。有沒有什么辦法,可以讓我慢慢的將整體系統(tǒng)遷移到新的技術(shù)棧上。特別是跨語言的遷移。
舉例
如后端語言(java、python、go) 轉(zhuǎn) 后端php
或是 php本身使用的技術(shù)棧比較老,想換到新的技術(shù)棧上。
答案是有的。
本篇適合任何語言的技術(shù)棧遷移
方案設(shè)計
流程圖
我們在新域名(新的技術(shù)棧) 和 舊域名(舊的技術(shù)棧)之上,抽一層出來(API 網(wǎng)關(guān)),所有流量都需要走API網(wǎng)關(guān),經(jīng)由API網(wǎng)關(guān)策略來確定將此流量分發(fā)給新域名還是舊域名。
新域名
1、實現(xiàn)業(yè)務(wù)功能并對外提供接口時,要考慮到不影響舊技術(shù)棧的業(yè)務(wù)使用。
2、基于新的架構(gòu)和技術(shù)棧開發(fā)相關(guān)功能
3、假設(shè)在開發(fā)中,舊域名有新的需求任務(wù)且正在開發(fā)。則需分析新需求,評估牽涉開發(fā)內(nèi)容,在新體系中同步做出相應(yīng)開發(fā)調(diào)整
舊域名
1、減少新的需求接入(在系統(tǒng)底層迭代開發(fā)期間,最好不再收取新的需求迭代開發(fā))
2、保證系統(tǒng)的穩(wěn)定運行(業(yè)務(wù)功能一旦遷移至新域名后,系統(tǒng)運轉(zhuǎn)有出現(xiàn)異常問題,要能快速切換舊域名完成回退)
API 網(wǎng)關(guān)
1、新域名每完成一個業(yè)務(wù)功能,就把API網(wǎng)關(guān)的相關(guān)業(yè)務(wù)功能路由映射由原舊域名轉(zhuǎn)到新域名上。
新問題:如何保持用戶會話?
方案1:分析就技術(shù)棧的用戶會話信息的存儲介質(zhì)是以database在存儲,還是以redis、memcache在存儲。然后新域名模擬舊技術(shù)棧的業(yè)務(wù)實現(xiàn)獲取用戶信息。
方案2:舊域名提供一個接口,供新域名調(diào)用。此接口可通過簽名或是cookie獲取用戶信息。新域名可通過此接口完成相關(guān)業(yè)務(wù)功能。文章來源:http://www.zghlxwxcb.cn/news/detail-682866.html
總結(jié)
基于以上思路,可以慢慢的把業(yè)務(wù)從舊域名遷移到新域名。文章來源地址http://www.zghlxwxcb.cn/news/detail-682866.html
到了這里,關(guān)于項目 - 后端技術(shù)棧轉(zhuǎn)型方案的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!