作者:墨镜空间新 | 来源:互联网 | 2023-08-24 16:35
问题背景:网联项目,两台服务器,F5负债均衡。每次生产上线,总会造成一两笔交易超时。
操作过程:周四7点,增量上线响应代码,编译,停止其中一台,马上重启。(停止重启的操作,大概2到3秒)另一台服务器同样如此
问题记录:每次生产上线。总会造成一两笔交易超时。
问题分析:当我停止其中一台服务器时,F5,就不会将新的交易请求发到已停止的服务器来。可是为什么会有超时的交易。是因为,我在停止的过程中,还有正在处理的请求嘛。(系统qps不高,平常一秒大概两三个请求)
问题备注:如果加上队列服务器,是否能解决。问题先放这儿,还在思考
后续思考:
网联对同步性要求很高,所有请求都是同步的。所以如果加上队列,响应时间会延长。
后续问题结果及解决方案:
通过了解。F5的策略是,基于端口监测。并且发现端口不能使用,到切换路由,间隔为5秒。
生产上线,只会关闭进程,不会关闭端口。目前系统qps,大概两三笔。所有单台服务器收不到请求,导致网联系统那边超时,是正常的现象。如果要解决的话,F5那边,可以更改策略为,基于进程监测。通过请求响应报文的方式,判断系统,是否正常使用。
后后续思考:
之前的想法有点问题,和同事讨论。又查了些资料。了解到,每个端口都有对应的服务,端口不是独立存在的,他是依附于进程的。所以,F5策略是没有问题,只是间隔时间太长
2019-07-18 补充
书上看到一个能完美出现这样问题的解决方案--版本管理
通过分布式框架,服务提供者先升级接口发布新版本的服务,并同时提供旧版本的服务供请求者调用,当请求者调用接口升级后,再关闭旧版本服务(摘自 大型网站技术架构)