我重命名了我的微服务,我如何处理语义版本?

I renamed my microservice, what do I do with the semantic version?

我在分布式系统中有许多微服务 - 我最近重命名了其中一个以更好地反映它的有界上下文并消除与另一个类似命名的服务的歧义。

重命名时该服务的版本为 3.1.0。我的问题是,我现在如何处理该版本?是4.0.0吗?或者这在概念上是一项新服务,取代旧服务并从 1.0.0 重新开始?

我倾向于后一种选择,但我也在对数据库架构进行版本控制以匹配服务,我不想最终处于服务为 1.0.0 但数据库架构为 1.0.0 的位置是 3.1.0...

您应该升级到 4.0 版。这个想法不是服务的名称,而是对其历史和血统的暗示。在这个例子中,虽然调用可执行文件的方法发生了变化,但数据库的序列是完整的,你想保留以前版本存在的历史。

升级主版本已经向所有用户表明发生了不兼容的更改,因此没有人会意外选择这个新的调用版本。

语义版本控制被故意低估,以便即使其他人不同意某个论点,核心原则也将继续得到遵循。也就是说,语义版本控制只会指定你必须做什么,而不是你应该做什么。