private string GetTargetServerNode(string key) { var hashValue = ConsistentHashingUtil.ComputeHash(key); var serverNode = ConsistentHashingUtil.ConsistentHashingRingBinarySearch(_hashRing.Keys.ToArray(), hashValue); return(_hashRing[serverNode]); }
public void AddServer(string server) { var virtualNodesHash = ConsistentHashingUtil.ComputeVirtualNodesHash(server, _virtualNodesCount); foreach (var virtualHash in virtualNodesHash) { if (_hashRing.ContainsKey(virtualHash)) { Console.WriteLine($"Oooops, already has a key {virtualHash}"); } _hashRing.Add(virtualHash, server); } }