美文网首页
服务拆分-绞杀者模式

服务拆分-绞杀者模式

作者: 大哥你先走 | 来源:发表于2021-11-10 06:45 被阅读0次

    绞杀者模式

    1 定义

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

    2 上下文和问题

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

    3 解决方案

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

    系统演进过程.png

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

    4 优点

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

    5 问题

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

    6 应用场景

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

    相关文章

      网友评论

          本文标题:服务拆分-绞杀者模式

          本文链接:https://www.haomeiwen.com/subject/uslbzltx.html