public void TestBalancer()
 {
     List<ShardId> shardIds = new List<ShardId> {new ShardId(1), new ShardId(2)};
     RoundRobinShardLoadBalancer balancer = new RoundRobinShardLoadBalancer(shardIds);
     Assert.AreEqual(1, balancer.NextShardId.Id);
     Assert.AreEqual(2, balancer.NextShardId.Id);
     Assert.AreEqual(1, balancer.NextShardId.Id);
 }
예제 #2
0
 private static IShardSelectionStrategy GetSelectionStrategy(
 ICollection<ShardId> shardIds)
 {
     var loadBalancer =
     new RoundRobinShardLoadBalancer(shardIds);
       return new RoundRobinShardSelectionStrategy(
     loadBalancer);
 }
 public IShardStrategy NewShardStrategy(IEnumerable<ShardId> shardIds)
 {
     var loadBalancer = new RoundRobinShardLoadBalancer(shardIds);
     var pss = new RoundRobinShardSelectionStrategy(loadBalancer);
     IShardResolutionStrategy prs = new AllShardsShardResolutionStrategy(shardIds);
     IShardAccessStrategy pas = new SequentialShardAccessStrategy();
     return new ShardStrategyImpl(pss, prs, pas);
 }
 public RoundRobinShardSelectionStrategy(RoundRobinShardLoadBalancer shardLoadBalancer)
     : base(shardLoadBalancer)
 {
 }
 public IShardStrategy NewShardStrategy(IEnumerable<ShardId> shardIds)
 {
     var loadBalancer = new RoundRobinShardLoadBalancer(shardIds);
     return new ShardStrategyImpl(
         new RoundRobinShardSelectionStrategy(loadBalancer),
         new AllShardsShardResolutionStrategy(shardIds),
         new ParallelShardAccessStrategy());
 }