你能推荐一些关于组装服务的软件架构模式的文献吗?这些服务在处理软件更新/发布时提供了高度的“连续性”。
例如,在一个企业中,几个应用程序是相互连接的,并且依赖于它们的资源,当然,就像数据库一样,在执行更新/发布时如何实现零停机?典型的场景包括更改数据库设计,以及一次更改多个服务合同。
发布于 2015-05-01 07:29:56
在构建可以零停机升级的服务层时,无状态可能是最重要的因素。这允许您启动新版本的软件,执行负载均衡器切换,并关闭旧版本。
这可以通过有状态系统来实现,但是您必须能够监视它们的现有连接,并在等待现有会话到期时更仔细地控制负载均衡器。
数据库设计更改要复杂得多,通常只涉及计划,以便更改始终向后兼容。您需要确保您的数据库允许同时运行服务的旧版本和新版本。
这并不意味着你不能做出突破性的改变,它只是意味着你通常需要在两个步骤中做出改变。例如,将字段重命名为:
<代码>H19删除旧列<代码>H210<代码>G211
这是一个巨大的痛苦,但对于某些系统,您确实需要这种正常运行时间要求。当将数据移动到新位置需要很长时间(有时是几周)时,我也必须这样做。
最后,这一部分非常重要。确保你的服务是自主的。不要让多个服务对同一个表进行读/写。这是一个巨大的混乱,同时迁移多个服务是一场噩梦。
https://stackoverflow.com/questions/29974705
复制相似问题