private List <ConsumerMessageStream> BuildStreamsForTopic(String topic, Int32 numberOfStreams) { var list = new List <ConsumerMessageStream>(); var partitionsNumber = GetNumberOfPartitionsForTopic(topic); var additional = ((partitionsNumber % numberOfStreams) == 0) ? 0 : 1; var step = partitionsNumber / numberOfStreams + additional; for (int i = 0; i < numberOfStreams; i++) { var startingFrom = i * step; var count = step; if (startingFrom + count > partitionsNumber) { count = partitionsNumber - startingFrom; } var messageStream = new ConsumerMessageStream(_stateStorageDirectory, _brokerAddress, _configuration, _context); messageStream.Topic = topic; messageStream.Partitions = GetPartitions(i * step, count); list.Add(messageStream); } return(list); }
private List<ConsumerMessageStream> BuildStreamsForTopic(String topic, Int32 numberOfStreams) { var list = new List<ConsumerMessageStream>(); var partitionsNumber = GetNumberOfPartitionsForTopic(topic); var additional = ((partitionsNumber % numberOfStreams) == 0) ? 0 : 1; var step = partitionsNumber / numberOfStreams + additional; for (int i = 0; i < numberOfStreams; i++) { var startingFrom = i * step; var count = step; if (startingFrom + count > partitionsNumber) count = partitionsNumber - startingFrom; var messageStream = new ConsumerMessageStream(_stateStorageDirectory, _brokerAddress, _configuration, _context); messageStream.Topic = topic; messageStream.Partitions = GetPartitions(i*step, count); list.Add(messageStream); } return list; }