Beispiel #1
0
        public static ServerLoadBalancer GetLoadBalancer()
        {
            if (_instance == null)
            {
                lock (syncLock)
                {
                    if (_instance == null)
                    {
                        _instance = new ServerLoadBalancer();
                    }
                }
            }

            return(_instance);
        }
Beispiel #2
0
        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);
            }
        }