public FailoverClusterClient(RemoteClientConfiguration configuration) { Configuration = configuration; MasterNode = (RemoteEngineClient <T>)configuration.GetClient <T>(); // Todo move to config _dispatchStrategy = new RoundRobinQueryDispatchStrategy <T>(Nodes); }
public static FailoverClusterClient <T> CreateFromNetwork(RemoteClientConfiguration baseConfiguration) { var client = new FailoverClusterClient <T>(baseConfiguration); var initClient = (RemoteEngineClient <T>)baseConfiguration.GetClient <T>(); var response = initClient.SendAndRecieve <ClusterInfoResponse>(new ClusterInfoRequest()); client.UpdateClusterInformation(response.ClusterInfo); return(client); }
RemoteEngineClient <T> CreateNode(string host, int port) { var nodeConfig = new RemoteClientConfiguration(); nodeConfig.DedicatedPool = Configuration.DedicatedPool; nodeConfig.MaxConnections = Configuration.MaxConnections; nodeConfig.Host = host; nodeConfig.Port = port; var node = (RemoteEngineClient <T>)nodeConfig.GetClient <T>(); Nodes.Add(node); return(node); }