读书人

服务器其间的重连总结

发布时间: 2013-09-12 22:07:00 作者: rapoo

服务器之间的重连总结

我们这边的服务器重连分为两种。


[1] 第一次连接未成功的循环尝试连接

这个比较好理解,比如,我们某个内部服务器未启动成功,主逻辑服务器第一次没连接成功,接下来,启动一个定时器,不断地重连,当内部服务器正常了,就能连接上。

注意两个问题,要启动了一个定时器不断得去尝试连接;连接要采用非阻塞或者异步的模式。这样,某个一个内部服务器没正常启动或者内网有异常的情况下,不会使我们的主逻辑出现性能上的抖动。

[2] 已经连接成功后的循环尝试连接

这个初看和第[1]种没什么区别。仔细分析一下,主要涉及到数据完整性的问题。

考虑已经连接成功的一个tcp连接,应用层发了一个消息包50字节,发了49字节出去后,内网的某个路由端口出故障了,这个时候还有一个1个字节在本地,未发出。这次重连的时候,就考虑把剩余的数据发出去。否则重连成功了,tcp是基于流的,接下来数据解析正常情况下就会全出错,基本不重启程序,就没机会正确地解析数据了。

读书人网 >软件架构设计

热点推荐