(Client A) --->【OpenResty] --->(System A)
如上所示:Client A是我们客户的系统采用Socekt协议跟我们的系统SystemA相连接;
为了能够在不中断Client A的服务的情况下,对System A进行升级维护,我们在System A前面加了OpenResty,
希望升级方法如下:
- 部署升级之后的System A New;
- 每一个Socket请求的报文,都包含一个“client_version"的字段,所以,为了验证升级后的系统,我们跟客户约定,推送Client的升级版本(Client A)给小规模用户,升级后的Client A New连接到我们的OpenResty,需要redirect到 System A NEW
- 小规模用户验证满意之后,修改OpenResty的redirect规则,将Client A也 redirect到 System A New,下线System A
遇到的问题是:
如果Client A采用HTTP协议,那么使用openresty来通过HTTP Header中的版本号来判断,并重定向到指定目标很容易;
可是现在Client A采用的是Socket协议,那么怎么来解析报文中的client_version字段的值呢?
升级的问题:
先谢过大家!
--
Thanks,
Neo