Azure Service FabriC语言 在不损坏架构和数据库的情况下升级无状态服务



我们有 2 个无状态服务实例访问数据库的读/写。这两个服务位于单独的升级域中。如果我有模式更改并且一个实例在启动时升级数据库架构 - 我如何确保第二个实例在尚未升级的过渡期间不会损坏数据。

是否有 Azure Service Fabric 提供的现成解决方案?

否,Service Fabric 没有任何现成的解决方案。将其与升级有状态服务的状态架构(即用于状态的类(的方案进行比较,一般解决方案是尝试对架构进行仅追加、向后兼容的更改。任何比这更复杂的更改,您需要编写一些自定义机制来处理从旧状态架构到新状态架构的迁移。

在无状态服务的情况下,如果您可以将数据库架构更改保留为仅追加(添加具有默认值的列等(,那么我会这样做。否则,您可能需要在数据库中实现某种形式的版本跟踪。然后,您的服务实例可以检查数据库版本,如果它高于其自己的部署版本,则退出该操作并等待升级。

相关内容

最新更新