微服務拆分-絞殺者模式 絞殺者模式

絞殺者模式

1 定義

老系統向新系統遷移時,可採用將老系統的部分功能使用新應用或服務替換的方式逐步進行。當老系統全部的功能被替換後,新系統就完成了對老系統的替代,從而老系統被”絞殺“,老系統可以關閉或者下線。這種逐步替換老系統功能到新系統的應用或服務上,逐步完成老系統替換的模式,稱之爲”絞殺者“模式。簡而言之,”絞殺者“模式就是一步一步的對老系統進行替換,直至老系統的所有功能都被替換。

2 上下文和問題

隨着時間的推移,老系統的架構和技術變得過時,繼續向老系統添加功能可能進一步增加系統的複雜性,使得老系統的維護演進變得更加困難。一步到位的替換老系統是一項艱鉅的任務,通常採用小步快走的方式逐步使用新系統或服務替換老系統的功能,在替換的過程中老系統還要支持尚未被替換的功能。同時運行兩個不同的系統,客戶端需要知道功能的位置(老系統or新系統),這個是系統演進過程中需要解決的技術問題。

3 解決方案

採用新系統或服務增量替換老系統特定功能的方法,可以解決老系統向新系統全面遷移過程中遇到的問題。使用該方法時,可以創建一個外觀(Facade)層(網關)攔截客戶端請求,外觀層負責將請求路由到正確的位置(老系統or新系統),客戶端不感知系統內部的變化,使用和原來一樣的API。

隨着時間的推移,老系統的功能逐步被新系統或新服務替代,當老系統的全部功能被替代後,老系統被”絞殺“,可以關閉下線。

4 優點

  • 最小化系統遷移的風險;
  • 系統遷移的節奏更加靈活;
  • 用戶無感知。

5 問題

  • 需要謹慎的處理被老系統和新系統同時使用的服務和存儲,需要確保這些服務和存儲能夠被新系統訪問;
  • 遷移過程中增加一個Facade服務用於攔截路由請求;
  • 如果新系統需要對接其他老系統,新增加的Facade服務可以繼續保留完成適配任務;
  • Facade服務提供的能力需要保持和系統遷移進度一致;
  • 確保Facade層不存在單點故障不會成爲系統的瓶頸。

6 應用場景

老系統漸進遷移到新系統,老系統體系結構演進時使用這種模式。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章