【发布时间】:2021-10-23 01:41:15
【问题描述】:
假设我有一个由几个微服务组成的应用程序。 该应用程序用于维护足球比赛(球员、球队、比赛……)。
现在,我希望我的应用程序不仅可以支持足球比赛,还可以处理篮球比赛。大约 90% 的功能是相同的,但有一些细微差别。
实现这种可变性的最佳方法是什么?
我可以
-
扩展现有的微服务以支持足球和篮球比赛。但是,如果我将来要添加其他运动,该服务将变得越来越复杂,以考虑运动特定的细节。
-
使服务实现高度可配置,并为足球和篮球比赛部署具有不同配置的多个服务实例。
-
复制我现有服务的所有代码,并针对篮球特定的内容进行一些小改动。但是,如果我添加其他运动项目,我最终会维护许多共享 90% 代码库的项目。
什么是在微服务架构中实现一些可变性并能够在未来轻松添加不同运动的最简洁的方法,而只需少量特定于运动的实现细节。
【问题讨论】:
标签: microservices code-duplication