微服务拆分-绞杀者模式 绞杀者模式

绞杀者模式

1 定义

老系统向新系统迁移时,可采用将老系统的部分功能使用新应用或服务替换的方式逐步进行。当老系统全部的功能被替换后,新系统就完成了对老系统的替代,从而老系统被”绞杀“,老系统可以关闭或者下线。这种逐步替换老系统功能到新系统的应用或服务上,逐步完成老系统替换的模式,称之为”绞杀者“模式。简而言之,”绞杀者“模式就是一步一步的对老系统进行替换,直至老系统的所有功能都被替换。

2 上下文和问题

随着时间的推移,老系统的架构和技术变得过时,继续向老系统添加功能可能进一步增加系统的复杂性,使得老系统的维护演进变得更加困难。一步到位的替换老系统是一项艰巨的任务,通常采用小步快走的方式逐步使用新系统或服务替换老系统的功能,在替换的过程中老系统还要支持尚未被替换的功能。同时运行两个不同的系统,客户端需要知道功能的位置(老系统or新系统),这个是系统演进过程中需要解决的技术问题。

3 解决方案

采用新系统或服务增量替换老系统特定功能的方法,可以解决老系统向新系统全面迁移过程中遇到的问题。使用该方法时,可以创建一个外观(Facade)层(网关)拦截客户端请求,外观层负责将请求路由到正确的位置(老系统or新系统),客户端不感知系统内部的变化,使用和原来一样的API。

随着时间的推移,老系统的功能逐步被新系统或新服务替代,当老系统的全部功能被替代后,老系统被”绞杀“,可以关闭下线。

4 优点

  • 最小化系统迁移的风险;
  • 系统迁移的节奏更加灵活;
  • 用户无感知。

5 问题

  • 需要谨慎的处理被老系统和新系统同时使用的服务和存储,需要确保这些服务和存储能够被新系统访问;
  • 迁移过程中增加一个Facade服务用于拦截路由请求;
  • 如果新系统需要对接其他老系统,新增加的Facade服务可以继续保留完成适配任务;
  • Facade服务提供的能力需要保持和系统迁移进度一致;
  • 确保Facade层不存在单点故障不会成为系统的瓶颈。

6 应用场景

老系统渐进迁移到新系统,老系统体系结构演进时使用这种模式。

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