kafka-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jun Rao <jun...@gmail.com>
Subject Re: DefaultEventHandler's getPartition's return value
Date Fri, 04 Apr 2014 03:19:46 GMT
Yes, it's not very intuitive. Currently, it is true that we don't have gap
in the partition ids. Since we already build the new producer, we probably
don't have to patch the old producer.

Thanks,

Jun


On Thu, Apr 3, 2014 at 9:06 AM, joe smith <water4u99@yahoo.com> wrote:

> Hi,
>
> My apologies - a newbie here.
>
> In looking at the getPartition() method, I notice the returned value for
> keyed message is the "index" of a partition.  But when there is no key,
> then the value returned is the "id" of a partition.
>
>           case None =>
>             val availablePartitions =
> topicPartitionList.filter(_.leaderBrokerIdOpt.isDefined)
>             if (availablePartitions.isEmpty)
>               throw new LeaderNotAvailableException("No leader for any
> partition in topic " + topic)
>             val index = Utils.abs(Random.nextInt) %
> availablePartitions.size
>             val partitionId = availablePartitions(index).partitionId
>             sendPartitionPerTopicCache.put(topic, partitionId)
>             << partitionId >>
>
> It probably won't make a difference when there is no gaps in the sequence
> of partitions.  However, when there is a gap - e.g. some partitions are not
> available - then the partition id and index would be different.
>
> In the partitionAndCollate() method, the semantic seems to be using index
> instead of id.
>
> Thanks

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message