Beispiel #1
0
        public Calculate()
        {
            var weightCalculator = new ServiceMetadataWeightCalculator(30);
            var loadBalance      = new RoundRobinLoadBalance();
            var registery        = new ZooKeeperRegistery(ZooKeeperClient.Instance);

            _unaryInvoker = new UnaryServiceInvoker(registery, "/dotdubbo/unary/providers", loadBalance, weightCalculator);
        }
Beispiel #2
0
        static void Main(string[] args)
        {
            var weightCalculator = new ServiceMetadataWeightCalculator(30);
            var loadBalance      = new RoundRobinLoadBalance();

            // 创建注册中心
            var registery = new ZooKeeperRegistery(ZooKeeperClient.Instance);

            // 启动并注册 UnaryService
            Enumerable.Range(UNARY_SERVICE_MIN_PORT, UNARY_SERVICE_MAX_COUNT)
            .Select(port => HostUnaryService(port))
            .ForEach(meta => registery.Register(meta, true), 1000);

            // 调用 UnaryService
            var unaryInvoker = new UnaryServiceInvoker(registery, UNARY_SERVICE_PROVIDER_PATH, loadBalance, weightCalculator);

            for (int i = -1; i >= -10; i--)
            {
                Console.WriteLine("unaryInvoker.Negate({0}) = {1}", i, unaryInvoker.Negate(i));
            }
            Console.WriteLine("------------------");


            // 启动并注册 CalcService
            Enumerable.Range(CALC_SERVICE_MIN_PORT, CALC_SERVICE_MAX_COUNT)
            .Select(port => HostCalcService(port))
            .ForEach(meta => registery.Register(meta, true), 1000);

            // 调用 CalcService
            var calcInvoker = new CalculateServiceInvoker(registery, CALC_SERVICE_PROVIDER_PATH, loadBalance, weightCalculator);

            for (int i = 1; i <= 10; i++)
            {
                calcInvoker.Multicast(i);
                Console.WriteLine("{0} + {1} = {2}", i, i + 1, calcInvoker.Add(i, i + 1));
                Console.WriteLine("-------------------");
                System.Threading.Thread.Sleep(1000);
            }

            Console.Read();

            // 断开与 ZooKeeper 服务器的连接
            ZooKeeperClient.Instance.Dispose();
        }