我有一个应用程序托管在AWS上的几个服务器上,带有负载均衡器。
我使用将更新推送到服务器。
让我说,我想推动一个更新到所有服务器。
在部署到负载均衡器之前,我是否应该将服务器从负载均衡器中删除?当前由应用程序池处理的请求会发生什么情况,对服务器上的新请求又会发生什么呢?
发布于 2015-08-19 18:39:43
这取决于你所说的“安全”是什么意思。从当前部署状态的角度来看,不会影响任何情况。从数据完整性的角度来看,这个过程可能不安全。当您的项目的.dll在服务器中被替换时,应用程序池几乎立即回收。
其结果是,目前的所有进程都被终止,而不受惩罚。使用系统的用户越多,未定义行为的结果就越普遍。被删除的主要内容是数据库连接,通常用户将处于投递过程中,一切看起来都很好,但只有部分事务或事务没有完成。
Ajax请求有时也会无限期地旋转。基本上,它只是核武器的一切,目前正在运行,没有宽限期或宽恕。
为了避免这种情况,大型服务经常会发出警告。
服务器将在15分钟内重新启动。
为了方便这一点,如果有一个开关,您可以在应用程序本身的某个地方更改它,它基本上会返回一个页面,当第一次遇到请求时,通过全局级别的某种操作指示服务器离线。在15分钟后打开它,让它运行到可能需要很长时间才能得到服务的时候。这应该是一个默认值(我知道在大多数地方,它长达2分钟,有时短到30秒)。
在等待了一小段时间以确保所有先前发送的请求在切换之前都已被激活后,请按下更新。如果开关是默认关闭的静态值,只要按下新版本就会重置静态值,一旦编译了新.dll并重新启动应用程序池,一切就会恢复。
https://stackoverflow.com/questions/32099517
复制相似问题