正如yegor256在this answer中解释的那样:
The only thing that it does is just exchanging of two CNAMEs. For example,you have one environment foo-1 with CNAME foo-1.example.com,and another one foo-2 with CNAME foo-2.example.com. After swap operation environment foo-1 will respond at 07003.
所以问题是,你不是直接切换整个流量,而只是新流量.现有流量将继续使用之前的CNAME条目达TTL秒,使得两个版本在这么短的时间内共存(300秒,或更多according to Arun Kumar).
当两个版本的应用程序可以共存时,这看起来是可以接受的.
但是,我们的应用程序的某些版本包括数据库补丁,必须在旧版本取出后立即运行,并且在新版本引入之前.
因此,看起来CNAME交换对我们正在做的事情来说还不够好,因为旧的应用程序版本会在数据库修补后中断.
理想情况下,我想:
>始终保持相同的弹性负载均衡器
>让Elastic Beanstalk使用新的应用版本启动一个或多个实例
>从ELB中删除现有实例(使用旧的应用程序版本)
>修补数据库
>将刚刚启动的实例(使用新的应用程序版本)添加到ELB
只有在需要应用补丁时,这才能将停机时间缩短到503 Service Unavailable的几秒钟.
解决方法
原文地址:https://www.jb51.cc/mssql/78128.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。