linux上部署java的web服务,某次在停服务(kill -9 XXXX)升级新版本的时候,有些没有处理完的的请求被中止了,尤其是一些写数据库的操作。
有没有什么方案可以让当前的请求顺利完成之后再停服务?
注:服务版本升级操作步骤:
- 停止老版本的服务(kill -9 xxxxx)
- 启动新的服务。
linux上部署java的web服务,某次在停服务(kill -9 XXXX)升级新版本的时候,有些没有处理完的的请求被中止了,尤其是一些写数据库的操作。
有没有什么方案可以让当前的请求顺利完成之后再停服务?
注:服务版本升级操作步骤:
如果你的服务和用户之间还有一层类似nginx的东西,直接改nginx配置,把服务定向到一个升级提示页,确保不会有新请求进来,等到所有旧的请求处理完了再直接关闭服务就行了。如果服务和用户直接连接的话,可以改dns。当然最保险的办法是改服务的代码,用个全局变量之类的东西作为标记,然后升级的时候管理员更改这个标记,服务一旦检测到这个标记被更改,就拒绝新的请求,但继续处理旧请求。
3 回答2.7k 阅读✓ 已解决
3 回答4.2k 阅读✓ 已解决
8 回答3.8k 阅读
4 回答2.8k 阅读✓ 已解决
2 回答2.7k 阅读✓ 已解决
3 回答2.6k 阅读✓ 已解决
1 回答2.9k 阅读✓ 已解决
web服务器都有正常停止功能,你kill -9是几个意思?
你关电脑都是直接拔电源吗?