关于在使用过程中更新应用服务器程序的问题研究(200)

墨剑

Unregistered / Unconfirmed
GUEST, unregistred user!
三层中是通过dcomconnection或socketconnection来连接应用服务器的。但是服务端程序难免会出现bug需要修改和更新。 如果某一时刻必须马上更新服务器端程序,而此时有若干客户端正在使用过程中,也即服务器端程序无法更换。 这种情况在三层中很是常见。大家一般采用什么办法? 先说说我的办法: 我一般是客户端登录时记录下对方ip地址和端口,在需要更换程序的时候,我发一个消息给所有连接中的客户端,客户端收到信息后自动断开与服务器的连接,1分钟后自动重新再连接。而在这一分钟之类,我就完成服务器端的更新了。 但这个办法也有不适用之处,就是客户端很多是在他们的内网里面,服务器端的ip地址和端口有可能相同,或端口不同,但内网防火墙会阻止从这个端口传入的消息。 各位有什么高见?
 
听你的意思,服务器是无状态的,那就好办只要在客户端做一个连接异常重试的机制就行了,由客户端自动重新登录服务器。
 
呵呵,不错。 这也是我考虑的另一种方式。但是异常状态很多,不是太好确认。
 
服务端采用动态加载的插件模式,同时提供一个更新状态的接口,客户端定时查询这个接口,如有更新,重新连接,即可转到新服务,服务函数的入口变换在服务端用过程参数实现,客户端不必接收消息
 
顶部