| using Top.Api.Cluster; | 
|   | 
| namespace Top.Api | 
| { | 
|     /// <summary> | 
|     /// 异地多活自动分配集群客户端。 | 
|     /// </summary> | 
|     public class ClusterTopClient : DefaultTopClient | 
|     { | 
|         public ClusterTopClient(string serverUrl, string appKey, string appSecret) | 
|             : base(serverUrl, appKey, appSecret) | 
|         { | 
|             ClusterManager.InitRefreshThread(this); | 
|         } | 
|   | 
|         public ClusterTopClient(string serverUrl, string appKey, string appSecret, string format) | 
|             : base(serverUrl, appKey, appSecret, format) | 
|         { | 
|             ClusterManager.InitRefreshThread(this); | 
|         } | 
|   | 
|         internal override string GetServerUrl(string serverUrl, string apiName, string session) | 
|         { | 
|             DnsConfig dnsConfig = ClusterManager.GetDnsConfigFromCache(); | 
|             if (dnsConfig == null) | 
|             { | 
|                 return serverUrl; | 
|             } | 
|             else | 
|             { | 
|                 return dnsConfig.GetBestVipUrl(serverUrl, apiName, session); | 
|             } | 
|         } | 
|   | 
|         internal override string GetSdkVersion() | 
|         { | 
|             return Constants.SDK_VERSION_CLUSTER; | 
|         } | 
|     } | 
| } |