您可以将微服务与单体应用程序混合使用吗?

Can you hybridize microservices with monolithic applications?

我正在学习架构。假设我有一个多年构建的单体应用程序。然后,您能否合并新的微服务与单体应用一起工作?或者微服务架构是否有一些固有的东西会被违反?

是的,您可以通过添加服务格式的功能(以及其自己的开发生命周期)来扩展现有系统。在这种情况下,您可能会将遗留单体视为可以与其他服务交互的“繁重”服务。

当您这样做时,建议您确保责任明确分离,并且服务之间的 communication/dependency 版本清晰。这允许版本迁移遵循最佳实践,就像您对外部服务提供商所做的那样。这反过来将使您的整体架构在复杂性和开发组织方面更加灵活和可扩展size/productivity。

在迁移到微服务架构风格时,以逐步的方式划分单体的特定组件或功能也是一种推荐的做法。所以你描述的情况在这个场景中是很常见的。

我建议您阅读 Martin Fowler(被认为是微服务架构风格的发明者之一)的 basic articles