Пример #1
0
 public PartitioningFilter(
     uint partitionCount,
     Partitioner.GetPartitionKey?partitioner = null,
     Partitioner.GetPartitionHash?getHash    = null
     )
 {
     _getHash        = getHash ?? MurmurHash3.Hash;
     _partitionCount = (int)partitionCount;
     _partitioner    = partitioner ?? (ctx => ctx.Stream);
     _filters        = Enumerable.Range(0, _partitionCount).Select(_ => new ConcurrentFilter(1)).ToArray();
 }
Пример #2
0
 public static SubscriptionBuilder WithPartitioning(
     this SubscriptionBuilder builder,
     uint partitionsCount,
     Partitioner.GetPartitionKey getPartitionKey
     )
 => builder.AddConsumeFilterFirst(new PartitioningFilter(partitionsCount, getPartitionKey));