diff options
| author | chrislu <chris.lu@gmail.com> | 2023-10-02 01:02:27 -0700 |
|---|---|---|
| committer | chrislu <chris.lu@gmail.com> | 2023-10-02 01:02:27 -0700 |
| commit | bf13f3ced78fd1556f02bc4a28c0c342dc15a76f (patch) | |
| tree | d6d084e44fa582d7db4672d83c57289087e5a2df /weed/mq/topic/partition.go | |
| parent | 734178093e1e5d86dd6bd81ac3abe9b9f814ea36 (diff) | |
| download | seaweedfs-bf13f3ced78fd1556f02bc4a28c0c342dc15a76f.tar.xz seaweedfs-bf13f3ced78fd1556f02bc4a28c0c342dc15a76f.zip | |
add subscriber coordinator
Diffstat (limited to 'weed/mq/topic/partition.go')
| -rw-r--r-- | weed/mq/topic/partition.go | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/weed/mq/topic/partition.go b/weed/mq/topic/partition.go index 285bdcb36..79c830f13 100644 --- a/weed/mq/topic/partition.go +++ b/weed/mq/topic/partition.go @@ -30,3 +30,20 @@ func FromPbPartition(partition *mq_pb.Partition) Partition { RingSize: partition.RingSize, } } + +func SplitPartitions(targetCount int32) []*Partition { + partitions := make([]*Partition, 0, targetCount) + partitionSize := PartitionCount / targetCount + for i := int32(0); i < targetCount; i++ { + partitionStop := (i + 1) * partitionSize + if i == targetCount-1 { + partitionStop = PartitionCount + } + partitions = append(partitions, &Partition{ + RangeStart: i * partitionSize, + RangeStop: partitionStop, + RingSize: PartitionCount, + }) + } + return partitions +} |
