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); }
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(); }