public static ServerLoadBalancer GetLoadBalancer() { if (_instance == null) { lock (syncLock) { if (_instance == null) { _instance = new ServerLoadBalancer(); } } } return(_instance); }
public static void PlayExample() { ServerLoadBalancer b1 = ServerLoadBalancer.GetLoadBalancer(); ServerLoadBalancer b2 = ServerLoadBalancer.GetLoadBalancer(); ServerLoadBalancer b3 = ServerLoadBalancer.GetLoadBalancer(); ServerLoadBalancer b4 = ServerLoadBalancer.GetLoadBalancer(); // Same instance? if (b1 == b2 && b2 == b3 && b3 == b4) { Console.WriteLine("Same instance\n"); } // Load balance 15 server requests ServerLoadBalancer balancer = ServerLoadBalancer.GetLoadBalancer(); for (int i = 0; i < 15; i++) { string server = balancer.Server; Console.WriteLine("Dispatch Request to: " + server); } }