static void Main(string[] args) { XmlConfigurator.Configure(); args = new [] { "-f", "ServerAddresses.txt" }; string[] replicaAddresses; if (!TryGetReplicaAddresses(args, out replicaAddresses)) { return; } var replicaAverageDelay = new ConcurrentDictionary <string, Tuple <long, int> >(); try { var clients = new ClusterClientBase[] { //new RandomClusterClient(replicaAddresses), //new GrayListClusterClient(replicaAddresses, TimeSpan.FromMilliseconds(1000)), //new AllAtOneTimeClusterClient(replicaAddresses), //new RoundRobinClusterClient(replicaAddresses), new SmartClusterClient(replicaAddresses), //new HistoryClusterClient(replicaAddresses) }; var queries = new[] { "От", "топота", "копыт", "пыль", "по", "полю", "летит", "На", "дворе", "трава", "на", "траве", "дрова", }; foreach (var client in clients) { Console.WriteLine("Testing {0} started", client.GetType()); Task.WaitAll(queries.Select( async query => { var timer = Stopwatch.StartNew(); try { var result = await client.ProcessRequestAsync(query, TimeSpan.FromSeconds(6)); Console.WriteLine("Processed query \"{0}\" in {1} ms", query, timer.ElapsedMilliseconds); } catch (TimeoutException) { Console.WriteLine("Query \"{0}\" timeout ({1} ms)", query, timer.ElapsedMilliseconds); } }).ToArray()); Console.WriteLine("Testing {0} finished", client.GetType()); } } catch (Exception e) { Console.WriteLine(e); Log.Fatal(e); } }
static void Main(string[] args) { Encoding.RegisterProvider(System.Text.CodePagesEncodingProvider.Instance); if (!TryGetReplicaAddresses(args, out var replicaAddresses)) { return; } try { var clients = new ClusterClientBase[] { // new RandomClusterClient(replicaAddresses), // new AnyClusterClient(replicaAddresses), // new RoundRobin(replicaAddresses), new SmartClusterClient(replicaAddresses), }; var queries = new[] { "lorem", "ipsum", "dolor", "sit", "amet", "consectetuer", "adipiscing", "elit", "sed", "diam", "nonummy", "nibh", "euismod", "tincidunt", "ut", "laoreet", "dolore", "magna", "aliquam", "erat" }; foreach (var client in clients) { Console.WriteLine("Testing {0} started", client.GetType()); Task.WaitAll(queries.Select( async query => { var timer = Stopwatch.StartNew(); try { // await client.ProcessRequestAsync(query, TimeSpan.FromSeconds(1)); await client.ProcessRequestAsync(query, TimeSpan.FromMilliseconds(10)); Console.WriteLine("Processed query \"{0}\" in {1} ms", query, timer.ElapsedMilliseconds); } catch (TimeoutException) { Console.WriteLine("Query \"{0}\" timeout ({1} ms)", query, timer.ElapsedMilliseconds); } }).ToArray()); Console.WriteLine("Testing {0} finished", client.GetType()); } } catch (Exception e) { Console.WriteLine($"E :{e}"); } }
private static void Main(string[] args) { XmlConfigurator.Configure(); if (!TryGetReplicaAddresses(args, out var replicaAddresses)) { return; } try { var clients = new ClusterClientBase[] { // new RoundRobinWithLimitedReplicasClusterClient(replicaAddresses), // new RoundRobinClusterClient(replicaAddresses), new SmartRoundRobinClusterClient(replicaAddresses), // new ParallelOnAllClusterClient(replicaAddresses), // new RandomClusterClient(replicaAddresses), }; var queries = new[] { "От", "топота", "копыт", "пыль", "по", "полю", "летит", "На", "дворе", "трава", "на", "траве", "дрова" }; // var queries = Enumerable.Range(1,500).Select(x=>x.ToString()); foreach (var client in clients) { Console.WriteLine("Testing {0} started", client.GetType()); Task.WaitAll(queries.Select( async query => { var timer = Stopwatch.StartNew(); try { await client.ProcessRequestAsync(query, TimeSpan.FromSeconds(3)); Console.WriteLine("Processed query \"{0}\" in {1} ms", query, timer.ElapsedMilliseconds); } catch (TimeoutException) { Console.WriteLine("Query \"{0}\" timeout ({1} ms)", query, timer.ElapsedMilliseconds); } }).ToArray()); Console.WriteLine("Testing {0} finished", client.GetType()); } } catch (Exception e) { // Console.WriteLine(e); Log.Fatal(e); } }
static void Main(string[] args) { XmlConfigurator.Configure(); string[] replicaAddresses; if (!TryGetReplicaAddresses(args, out replicaAddresses)) { return; } try { var clients = new ClusterClientBase[] { // new RandomClusterClient(replicaAddresses), // new SimultaneousClient(replicaAddresses), // new RoundRobinClient(replicaAddresses), new SmartClient(replicaAddresses), }; var queries = new[] { "От", "топота", "копыт", "пыль", "по", "полю", "летит", "На", "дворе", "трава", "на", "траве", "дрова" }; foreach (var client in clients) { Console.WriteLine("Testing {0} started", client.GetType()); Task.WaitAll(queries.Select( async query => { var timer = Stopwatch.StartNew(); try { if (await client.ProcessRequestAsync(query, TimeSpan.FromSeconds(6)) != null) { Console.WriteLine("Processed query \"{0}\" in {1} ms", query, timer.ElapsedMilliseconds); } else { Console.WriteLine("Something bad happened :("); } } catch (TimeoutException) { Console.WriteLine("Query \"{0}\" timeout ({1} ms)", query, timer.ElapsedMilliseconds); } }).ToArray()); Console.WriteLine("Testing {0} finished", client.GetType()); } } catch (Exception e) { Log.Fatal(e); } }
static void Main(string[] args) { XmlConfigurator.Configure(); if (!TryGetReplicaAddresses(args, out var replicaAddresses)) { return; } try { var clients = new ClusterClientBase[] { new RandomClusterClient(replicaAddresses), new BalancingClusterClient(replicaAddresses) }; var queries = new[] { "lorem", "ipsum", "dolor", "sit", "amet", "consectetuer", "adipiscing", "elit", "sed", "diam", "nonummy", "nibh", "euismod", "tincidunt", "ut", "laoreet", "dolore", "magna", "aliquam", "erat" }; foreach (var client in clients) { Console.WriteLine("Testing {0} started", client.GetType()); Task.WaitAll(queries.Select( async query => { var timer = Stopwatch.StartNew(); try { await client.ProcessRequestAsync(query, TimeSpan.FromSeconds(6)); Console.WriteLine("Processed query \"{0}\" in {1} ms", query, timer.ElapsedMilliseconds); } catch (TimeoutException) { Console.WriteLine("Query \"{0}\" timeout ({1} ms)", query, timer.ElapsedMilliseconds); } }).ToArray()); Console.WriteLine("Testing {0} finished", client.GetType()); } } catch (Exception e) { Log.Fatal(e); Console.WriteLine($"E :{e}"); } }
static void Main(string[] args) { XmlConfigurator.Configure(); if (!TryGetReplicaAddresses(args, out var replicaAddresses)) { return; } try { var clients = new ClusterClientBase[] { new RandomClusterClient(replicaAddresses), new ParallelClusterClient(replicaAddresses), new RoundRobinClusterClient(replicaAddresses), new SmartClusterClient(replicaAddresses), new EmergencyAsyncClient(replicaAddresses), new EmergencyAsyncClient(replicaAddresses, replicaAddresses[3]) }; var queries = new[] { "От", "топота", "копыт", "пыль", "по", "полю", "летит", "На", "дворе", "трава", "на", "траве", "дрова" }; foreach (var client in clients) { var clientName = client.GetType().ToString().Split('.').Last(); Console.WriteLine("Testing {0} started", clientName); Task.WaitAll(queries.Select( async query => { var timer = Stopwatch.StartNew(); try { await client.ProcessRequestAsync(query, TimeSpan.FromSeconds(6)); Console.WriteLine("Processed query \"{0}\" in {1} ms", query, timer.ElapsedMilliseconds); } catch (TimeoutException) { Console.WriteLine("Query \"{0}\" timeout ({1} ms)", query, timer.ElapsedMilliseconds); } }).ToArray()); Console.WriteLine("Testing {0} finished", clientName); } } catch (Exception e) { Log.Fatal(e); } Console.ReadKey(); }
private static void Main(string[] args) { XmlConfigurator.Configure(); if (!ClientArguments.TryGetReplicaAddresses(args, out var replicaAddresses)) { Console.WriteLine("Faulted: Pass arguments to preconfigurate client."); return; } try { var queries = File.ReadAllLines("Queries.txt"); var clients = new ClusterClientBase[] { new RandomClusterClient(replicaAddresses), new BroadcastClusterClient(replicaAddresses), new RoundRobinClusterClient(replicaAddresses), new SmartClusterClient(replicaAddresses) }; foreach (var client in clients) { Log.Debug($"Testing {client.GetType()} started."); Task.WaitAll(queries.Select( async query => { var timer = Stopwatch.StartNew(); try { await client.ProceedRequestAsync(query, TimeSpan.FromMilliseconds(500)); Log.Info($"Query processed [{query}] in {timer.ElapsedMilliseconds} ms."); } catch (TimeoutException) { Log.Warn($"Query [{query}] timeout ({timer.ElapsedMilliseconds} ms)."); } }).ToArray()); Log.Debug($"Testing {client.GetType()} finished."); } } catch (Exception e) { Log.Fatal(e); } }
public static void Main(string[] args) { Encoding.RegisterProvider(System.Text.CodePagesEncodingProvider.Instance); XmlConfigurator.Configure(LogManager.GetRepository(Assembly.GetCallingAssembly()), new FileInfo("log4net.config")); ThreadPool.SetMinThreads(20, 20); if (!TryGetReplicaAddresses(args, out var replicaAddresses)) { return; } try { var vsc = new VerySmartClusterClient(replicaAddresses); var clients = new ClusterClientBase[] { // new RandomClusterClient(replicaAddresses), // new AllClusterClient(replicaAddresses), // new RoundRobinClusterClient(replicaAddresses), vsc, vsc, vsc, vsc, vsc, vsc, vsc, vsc, vsc, vsc, }; var queries = new[] { "lorem", "ipsum", "dolor", "sit", "amet", "consectetuer", "adipiscing", "elit", "sed", "diam", "nonummy", "nibh", "euismod", "tincidunt", "ut", "laoreet", "dolore", "magna", "aliquam", "erat" }; foreach (var client in clients) { Console.WriteLine("Testing {0} started", client.GetType()); Task.WaitAll(queries.Select( async query => { var timer = Stopwatch.StartNew(); try { await client.ProcessRequestAsync(query, TimeSpan.FromSeconds(6)); Console.WriteLine("Processed query \"{0}\" in {1} ms", query, timer.ElapsedMilliseconds); } catch (TimeoutException) { Console.WriteLine("Query \"{0}\" timeout ({1} ms)", query, timer.ElapsedMilliseconds); } }).ToArray()); Console.WriteLine("Testing {0} finished", client.GetType()); } } catch (Exception e) { Log.Fatal(e); Console.WriteLine($"E :{e}"); } }
static void Main(string[] args) { XmlConfigurator.Configure(); string[] replicaAddresses; // if (!TryGetReplicaAddresses(args, out replicaAddresses)) // return; replicaAddresses = new[] { "http://127.0.0.1:8060/qqq/", "http://127.0.0.1:8010/qqq/", "http://127.0.0.1:8020/qqq/" }; try { var clients = new ClusterClientBase[] { new RandomClusterClient(replicaAddresses), new AllTogetherClusterClient(replicaAddresses), new RoundRobinClient(replicaAddresses), new SmartClient(replicaAddresses), new MyClient(replicaAddresses), }; var queries = new[] { "От", "топота", "копыт", "пыль", "по", "полу", "летит" }; foreach (var client in clients) { Console.WriteLine("Testing {0} started", client.GetType()); Task.WaitAll(queries.Select( async query => { var timer = Stopwatch.StartNew(); try { await client.ProcessRequestAsync(query, TimeSpan.FromSeconds(20)); Console.WriteLine("Processed query \"{0}\" in {1} ms", query, timer.ElapsedMilliseconds); } catch (TimeoutException) { Console.WriteLine("Query \"{0}\" timeout ({1} ms)", query, timer.ElapsedMilliseconds); } }).ToArray()); Console.WriteLine("Testing {0} finished", client.GetType()); } } catch (Exception e) { Log.Fatal(e); } }
static void Main(string[] args) { XmlConfigurator.Configure(); if (!TryGetReplicaAddresses(args, out var replicaAddresses, out var delay)) { return; } try { var clients = new ClusterClientBase[] { new RandomClusterClient(replicaAddresses), new BroadcastClusterClient(replicaAddresses), new RoundRobinClusterClient(replicaAddresses), new SmartClusterClient(replicaAddresses), new GrayListClusterClient(replicaAddresses), new RRClusterClientWithPriority(replicaAddresses), new SmartClusterClientWithPriority(replicaAddresses), new BroadCastClusterClientWithCancellation(replicaAddresses), new BroadCastClusterClientWithCache(replicaAddresses), }; var queries = new[] { "От", "топота", "копыт", "пыль", "по", "полю", "летит", "На", "дворе", "трава", "на", "траве", "дрова" }; foreach (var client in clients) { Log.Info(client.GetType()); Console.WriteLine("Testing {0} started", client.GetType()); Task.WaitAll(queries.Select( async query => { var timer = Stopwatch.StartNew(); try { await client.ProcessRequestAsync(query, TimeSpan.FromSeconds(delay)); Console.WriteLine("Processed query \"{0}\" in {1} ms", query, timer.ElapsedMilliseconds); } catch (TimeoutException) { Console.WriteLine("Query \"{0}\" timeout ({1} ms)", query, timer.ElapsedMilliseconds); } timer.Reset(); }).ToArray()); Task.WaitAll(queries.Select( async query => { var timer = Stopwatch.StartNew(); try { await client.ProcessRequestAsync(query, TimeSpan.FromSeconds(delay)); Console.WriteLine("Processed query \"{0}\" in {1} ms", query, timer.ElapsedMilliseconds); } catch (TimeoutException) { Console.WriteLine("Query \"{0}\" timeout ({1} ms)", query, timer.ElapsedMilliseconds); } timer.Reset(); }).ToArray()); Console.WriteLine("Testing {0} finished", client.GetType()); } } catch (Exception e) { Log.Fatal(e); } }
static void Main(string[] args) { XmlConfigurator.Configure(); string[] replicaAddresses; if (!TryGetReplicaAddresses(args, out replicaAddresses)) { return; } try { var clients = new ClusterClientBase[] { new RandomClusterClient(replicaAddresses), new SmartClusterClient(replicaAddresses), new ConcurrentClusterClient(replicaAddresses), new RoundRobinClusterClient(replicaAddresses), //new BatchClusterClient(replicaAddresses, replicaAddresses.Length / 2), }; //for (int i = 0; i < 2; i++) { var queries = new[] { "От", ///*"топота", "копыт", "пыль", "по", "полю", "летит", "На", "дворе", "трава", "на", */"траве", "дрова" }; foreach (var client in clients) { Console.WriteLine("Testing {0} started", client.GetType()); Task.WaitAll(queries.Select( async query => { var timer = Stopwatch.StartNew(); try { await client.ProcessRequestAsync(query, TimeSpan.FromSeconds(5)); Console.WriteLine("Processed query \"{0}\" in {1} ms", query, timer.ElapsedMilliseconds); } catch (TimeoutException) { Console.WriteLine("Query \"{0}\" timeout ({1} ms)", query, timer.ElapsedMilliseconds); } catch (ClusterClientException e) { Console.WriteLine(e.Message); } }).ToArray()); Console.WriteLine("Testing {0} finished", client.GetType()); } //Thread.Sleep(5000); } } catch (Exception e) { Log.Fatal(e); } }