首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >服务连续性架构

服务连续性架构
EN

Stack Overflow用户
提问于 2015-05-01 02:03:04
回答 1查看 40关注 0票数 0

你能推荐一些关于组装服务的软件架构模式的文献吗?这些服务在处理软件更新/发布时提供了高度的“连续性”。

例如,在一个企业中,几个应用程序是相互连接的,并且依赖于它们的资源,当然,就像数据库一样,在执行更新/发布时如何实现零停机?典型的场景包括更改数据库设计,以及一次更改多个服务合同。

EN

回答 1

Stack Overflow用户

发布于 2015-05-01 07:29:56

在构建可以零停机升级的服务层时,无状态可能是最重要的因素。这允许您启动新版本的软件,执行负载均衡器切换,并关闭旧版本。

这可以通过有状态系统来实现,但是您必须能够监视它们的现有连接,并在等待现有会话到期时更仔细地控制负载均衡器。

数据库设计更改要复杂得多,通常只涉及计划,以便更改始终向后兼容。您需要确保您的数据库允许同时运行服务的旧版本和新版本。

这并不意味着你不能做出突破性的改变,它只是意味着你通常需要在两个步骤中做出改变。例如,将字段重命名为:

  1. Add new column
  2. 部署新版本的服务,当新列中没有数据时从旧列读取,但仅写入新列
  3. Move data to new column
  4. 部署仅读/写新列的新服务

<代码>H19删除旧列<代码>H210<代码>G211

这是一个巨大的痛苦,但对于某些系统,您确实需要这种正常运行时间要求。当将数据移动到新位置需要很长时间(有时是几周)时,我也必须这样做。

最后,这一部分非常重要。确保你的服务是自主的。不要让多个服务对同一个表进行读/写。这是一个巨大的混乱,同时迁移多个服务是一场噩梦。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29974705

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档