【问题标题】:Update a live service which is currently running 24x7更新当前 24x7 全天候运行的实时服务
【发布时间】:2014-01-21 13:52:14
【问题描述】:

任何人都可以建议如何在不停机的情况下更新一个 web-service /wcf 服务来保存实时交易吗?

请不要建议在非高峰时间更新,因为我们的服务 24x7 运行,交易可能会在任何时间段运行。

那么,通过一些更改来更新此类服务以不影响当前交易的最佳方式是什么?

【问题讨论】:

    标签: wcf web-services service amazon-web-services


    【解决方案1】:

    我使用负载平衡来防止错误并在更新期间保持网站正常运行。为此,您需要在负载均衡器后面至少有两台服务器,将流量发送到启动的服务器。我更新网站的程序是:

    告诉“服务器 A”在负载平衡器 ping 的 URL 处开始提供错误页面。这告诉负载均衡器停止向该服务器发送流量。 等待 30 秒左右,直到流量停止访问服务器。 更新此服务器上的代码。 告诉服务器停止在 ping URL 处提供错误页面。 等到该服务器再次获得流量。 对“服务器 B”重复步骤 1-5。

    【讨论】:

    • +1,这是一个不错的选择。我可以通过在同一服务器上创建两个实例来使用负载平衡吗?
    【解决方案2】:

    根据我的经验...我使用 Git 服务器和本地机器来编辑代码以确保一切正常,然后推送到服务器,然后拉上实时站点,然后它的停机时间为 0 ....

    【讨论】:

      【解决方案3】:

      没有 0 秒的停机时间,这是不可能的。 至少你能做的是更新网络服务,在登台服务器上彻底测试。验证并确保更新正常运行。

      更新服务部分(在我的例子中是 xyz.war 文件)并重新启动服务器以使其生效。 如果此过程涉及任何数据库或其他更改,我会制作一个脚本并在上线前在登台服务器上进行测试。

      只有一个建议:对当前的实时服务器进行适当的备份以防万一。

      【讨论】:

      • 嗨阿迪亚!我想我已经提到我们不能关闭服务或重新启动它。因为那些持续运行的正在运行的事务呢
      • 嗨 Empire:我刚刚在这里分享了我的知识,我看到 Donstack 在这方面提供了更好的解决方案。实时服务器的停机时间更新为 0,我仍然怀疑是否可以实现。我期待在此页面上找到解决方案。祝你好运。
      猜你喜欢
      • 1970-01-01
      • 2022-11-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-08
      • 1970-01-01
      相关资源
      最近更新 更多