服务器程序中怎么设计retry功能

服务器程序中如何设计retry功能集群中有client、server1, server2三台机器,client需要向server请求数据,如

服务器程序中如何设计retry功能

集群中有client、server1, server2三台机器,client需要向server请求数据,如果server1响应超时,则请求server2。server1、server2互为备份,包含同样的数据。

client:

      for (id = 0; id < 2; id++)      {           if (TIMEOUT == do_request(server[id], timeout * get_timeout_percent(), req) )           {                  continue; // retry next server           }      }

不过,对于server挂掉的情况(socket层面无法连接)do_request请求这个server会立即失败,可以不设置timeout_percent。