您现在的位置是:主页 > Web前端技术 > Web前端技术

Java微服务架构的重构策略是什么编程语言

IDCBT2022-01-07服务器技术人已围观

简介本篇内容介绍了“Java微服务架构的重构策略是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望

本篇内容介绍了“Java微服务架构的重构策略是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

1.将新功能实现为服务

“挖坑法则”(The Law of  Holes)指出:如果你发现自己已经陷入了困境,就不要再给自己继续挖坑了。当你的单体应用变得无法管理时,这是一个很好的可供参考的建议。换句话说,如果你有一个庞大的、复杂的单体应用程序,请不要通过向单体添加代码来实现新功能。这将使你的单体变得更庞大,更难以管理。相反,你应该将新功能实现为服务。

这是开始将单体应用程序迁移到微服务架构的好方法。它降低了单体的生长速度,加速了新功能的开发(因为是在全新的代码库中进行开发),还能快速展示采用微服务架构的价值。

把新的服务与单体集成

图 1显示了将新功能实现为服务后的应用程序架构。除了新服务和单体外,该架构还包括另外两个将服务集成到应用程序中的元素:

■ API Gateway:将对新功能的请求路由到新服务,并将遗留请求路由到单体。

■ 集成胶水代码:将服务与单体结合。它使服务能够访问单体所拥有的数据,并能够调用单体实现的功能。

集成胶水的代码不是一个独立组件。相反,它由单体中的适配器和使用一个或多个进程间通信机制的服务组成。

何时把新功能实现为服务

理想情况下,你应该在绞杀者应用程序中而不是在单体中实现每个新功能。你将实现新功能作为新服务或作为现有服务的一部分。这样你就可以避免和单体代码库打交道。不幸的是,并非每个新功能都可以作为服务实现。

因为微服务架构的本质是一组围绕业务功能组织的松耦合服务。例如,某个功能可能太小而无法成为有意义的服务。例如,你可能只需要向现有类添加一些字段和方法。或者新功能可能与单体中的代码紧耦合。如果你尝试将此类功能实现为服务,则通常会发现,由于过多的进程间通信而导致性能下降。你可能还会遇到数据一致性的问题。如果新功能无法作为服务实现,则解决方案通常是首先在单体中实现新功能。之后,你可以将该功能以及其他相关功能提取到自己的服务中。

以服务的方式实现新功能,可以加速这些功能的开发。这是快速展示微服务架构价值的好方法。它还能够降低单体的增长速度。但最终,你需要使用另外两种策略来分解单体。你需要通过将单体中的功能提取到服务,从而将单体中的功能迁移到绞杀者应用程序。你也可以通过水平分割单体架构来提高开发速度。我们来看看如何做到这一点。

标签:

很赞哦! ()

本栏推荐