1. A method of processing queries in a network, comprising determining, by a computing device, virtual cluster membership information of a plurality of servers in the network, the virtual cluster membership information identifying each of the plurality of servers as a member in a respective one of a plurality of virtual server clusters, wherein the virtual server clusters are dynamically determined, logical groupings of the plurality of servers; measuring, by the computing device, respective performance information of the plurality of servers; computing, by the computing device, respective performance metrics corresponding to the plurality of servers; computing, by the computing device, respective virtual cluster performance metrics corresponding to the plurality of virtual clusters based on the respective virtual cluster membership information and the respective performance metrics of the plurality of servers belonging to the plurality of virtual clusters, wherein the respective virtual cluster performance metrics include average response times over a predetermined period of time of the plurality of servers identified as members in each of the plurality of virtual server clusters; resetting the virtual cluster performance metrics as definitions of respective virtual clusters in the virtual cluster membership information are dynamically changed; routing a request to one of the plurality of servers based on the computed performance metric to balance a workload among the one or more servers; routing the request to one of a plurality of site selectors associated with one of a plurality of sites, which includes assuring that a percentage of traffic routed overall to the selected server within a virtual cluster is proportionate to a weighted performance of the individual servers; and determining, by the computing device, performance metrics of the one of the plurality of sites by requesting performance metrics from site selectors.