【问题标题】:I renamed my microservice, what do I do with the semantic version?我重命名了我的微服务,我如何处理语义版本?
【发布时间】:2016-09-12 07:14:29
【问题描述】:

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

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

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

【问题讨论】:

  • 服务的名字和服务的身份是一样的吗?如果你改了名字,你是不同的人还是同一个人?我建议你的服务的身份不仅仅是它的名字,就像你的身份不仅仅是你的名字一样。
  • 我明白你的意思。从消费者的角度来看,他们必须做一些工作才能使用新名称下的服务,就像他们需要为任何主要版本更改做一些工作一样。
  • 这可能有助于澄清您是否已将服务重命名为 interfaceinterface-implementation

标签: rename microservices semantic-versioning


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 2023-03-20
    • 2020-11-14
    • 1970-01-01
    • 1970-01-01
    • 2017-07-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-13
    相关资源
    最近更新 更多