微服务迁移模式之Martin Flower绞杀者模式

本文涉及的产品
云原生网关 MSE Higress,422元/月
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
注册配置 MSE Nacos/ZooKeeper,118元/月
简介: 绞杀者模式(Strangler Pattern)是一种非常流行的从单体系统向微服务迁移的策略,其主张通过用新服务替换特定功能来将单体系统逐步转换为微服务,一旦新服务已经能够代替原有旧有功能,就将原有功能组件绞杀(即彻底停用)。

绞杀者模式(Strangler Pattern)是一种非常流行的从单体系统向微服务迁移的策略,其主张通过用新服务替换特定功能来将单体系统逐步转换为微服务,一旦新服务已经能够代替原有旧有功能,就将原有功能组件绞杀(即彻底停用)。

基于绞杀者模式将单体系统拆分为微服务的时候,任何新的开发都应该作为新服务的一部分,而不是单体系统,这保证了新的开发领域的代码具有较高的质量。建议在编写业务逻辑时遵循测试驱动开发(Test-Driven Development, TDD),并将SonarQube与部署管道集成,以避免产生任何技术债务。

借助绞杀者模式从单体系统向微服务系统迁移可以大致简化为三个步骤,即转化、共存和消亡。
图片 1.png

简而言之,就是开发一个新组件(即微服务),让新组建和旧组件共存一段时间,最终消除旧组件。大致步骤如下:

  • 最初,所有访问应用的流量都路由到旧版系统。
  • 构建新组件后,可以对单体系统代码与新功能一起进行测试。
  • 单体系统和新组件需要共同运行一段时间,这段过渡时间可能会较长。
  • 对新组件进行增量开发和测试后,可以完全停用旧的单体系统。

2.png

如何选择首先要绞杀/重构的组件?

  • 如果您是首次使用绞杀者模式,并且之前对这种模式并不是非常熟悉,此时建议从绞杀简单的组件开始尝试,这样一来也为绞杀复杂组件提供了知识储备和最佳实践。
  • 如果某个组件的测试覆盖率较高,并且相关的技术债务较少,那么可以考虑从该组件开始较少,这样易于帮助团队建立信心。
  • 如果某些组件对于可伸缩性具有较高的要求,可以从这些组件之一开始。
  • 如果某个组件的业务需求比较频繁而需要定期部署,则可以从该组件开始。这将降低单体系统重新部署的频率,并且便于对于需求变更较为频繁的组件进行独立扩展和部署。
相关文章
|
2月前
|
缓存 监控 API
探索微服务架构中的API网关模式
【10月更文挑战第5天】随着微服务架构的兴起,企业纷纷采用这一模式构建复杂应用。在这种架构下,应用被拆分成若干小型、独立的服务,每个服务围绕特定业务功能构建并通过HTTP协议协作。随着服务数量增加,统一管理这些服务间的交互变得至关重要。API网关作为微服务架构的关键组件,承担起路由请求、聚合数据、处理认证与授权等功能。本文通过一个在线零售平台的具体案例,探讨API网关的优势及其实现细节,展示其在简化客户端集成、提升安全性和性能方面的关键作用。
82 2
|
2月前
|
存储 缓存 监控
探索微服务架构中的API网关模式
【10月更文挑战第1天】探索微服务架构中的API网关模式
98 2
|
4月前
|
存储 消息中间件 Apache
比较微服务中的分布式事务模式
比较微服务中的分布式事务模式
79 2
|
4月前
|
监控 JavaScript 测试技术
从单体应用迁移到微服务的最佳实践
【8月更文第29天】随着软件架构的发展,越来越多的企业开始考虑从传统的单体应用迁移到微服务架构。虽然迁移可以带来诸如更好的可扩展性、更高的灵活性等优势,但这一过程也可能充满挑战。本文将详细介绍如何顺利地进行这一转变,并提供一些实用的步骤和示例代码。
219 0
|
1月前
|
缓存 负载均衡 JavaScript
探索微服务架构下的API网关模式
【10月更文挑战第37天】在微服务架构的海洋中,API网关犹如一座灯塔,指引着服务的航向。它不仅是客户端请求的集散地,更是后端微服务的守门人。本文将深入探讨API网关的设计哲学、核心功能以及它在微服务生态中扮演的角色,同时通过实际代码示例,揭示如何实现一个高效、可靠的API网关。
|
1月前
|
缓存 监控 API
探索微服务架构中的API网关模式
随着微服务架构的兴起,API网关成为管理和服务间交互的关键组件。本文通过在线零售公司的案例,探讨了API网关在路由管理、认证授权、限流缓存、日志监控和协议转换等方面的优势,并详细介绍了使用Kong实现API网关的具体步骤。
50 3
|
1月前
|
存储 缓存 监控
探索微服务架构中的API网关模式
探索微服务架构中的API网关模式
53 2
|
3月前
|
JSON 监控 安全
探索微服务架构中的API网关模式
【9月更文挑战第22天】在微服务架构的海洋中,API网关如同一位智慧的守门人,不仅管理着服务的进出,还维护着整个系统的秩序。本文将带你一探究竟,看看这位守门人是如何工作的,以及它为何成为现代云原生应用不可或缺的一部分。从流量控制到安全防护,再到服务聚合,我们将一起解锁API网关的秘密。
|
4月前
|
分布式计算 负载均衡 API
微服务架构设计原则与模式
【8月更文第29天】随着云计算和分布式计算的发展,微服务架构已成为构建大型复杂应用的一种流行方式。这种架构模式将单个应用程序分解成一组小型、独立的服务,每个服务运行在其自己的进程中,并通过轻量级机制(通常是HTTP资源API)进行通信。本文将探讨微服务架构的基本设计原则、常用模式以及如何有效地划分服务边界。
453 3
|
4月前
|
负载均衡 前端开发 API
我希望在系统设计面试之前知道的 12 种微服务模式
我希望在系统设计面试之前知道的 12 种微服务模式