@ -3,9 +3,9 @@
@@ -3,9 +3,9 @@
* file distributed with this work for additional information regarding copyright ownership . The ASF licenses this file
* to You under the Apache License , Version 2 . 0 ( the "License" ) ; you may not use this file except in compliance with the
* License . You may obtain a copy of the License at
*
*
* http : //www.apache.org/licenses/LICENSE-2.0
*
*
* Unless required by applicable law or agreed to in writing , software distributed under the License is distributed on
* an "AS IS" BASIS , WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND , either express or implied . See the License for the
* specific language governing permissions and limitations under the License .
@ -20,23 +20,23 @@ import org.apache.kafka.common.TopicPartition;
@@ -20,23 +20,23 @@ import org.apache.kafka.common.TopicPartition;
* A callback interface that the user can implement to trigger custom actions when the set of partitions assigned to the
* consumer changes .
* < p >
* This is applicable when the consumer is having Kafka auto - manage group membership . If the consumer ' s directly assign partitions ,
* This is applicable when the consumer is having Kafka auto - manage group membership . If the consumer directly assigns partitions ,
* those partitions will never be reassigned and this callback is not applicable .
* < p >
* When Kafka is managing the group membership , a partition re - assignment will be triggered any time the members of the group changes or the subscription
* When Kafka is managing the group membership , a partition re - assignment will be triggered any time the members of the group change or the subscription
* of the members changes . This can occur when processes die , new process instances are added or old instances come back to life after failure .
* Rebalances can also be triggered by changes affecting the subscribed topics ( e . g . when then number of partitions is
* Rebalances can also be triggered by changes affecting the subscribed topics ( e . g . when the number of partitions is
* administratively adjusted ) .
* < p >
* There are many uses for this functionality . One common use is saving offsets in a custom store . By saving offsets in
* the { @link # onPartitionsRevoked ( Collection ) } , call we can ensure that any time partition assignment changes
* the { @link # onPartitionsRevoked ( Collection ) } call we can ensure that any time partition assignment changes
* the offset gets saved .
* < p >
* Another use is flushing out any kind of cache of intermediate results the consumer may be keeping . For example ,
* consider a case where the consumer is subscribed to a topic containing user page views , and the goal is to count the
* number of page views per users for each five minute window . Let ' s say the topic is partitioned by the user id so that
* all events for a particular user will go to a single consumer instance . The consumer can keep in memory a running
* tally of actions per user and only flush these out to a remote data store when its cache gets to big . However if a
* number of page views per user for each five minute window . Let ' s say the topic is partitioned by the user id so that
* all events for a particular user go to a single consumer instance . The consumer can keep in memory a running
* tally of actions per user and only flush these out to a remote data store when its cache gets too big . However if a
* partition is reassigned it may want to automatically trigger a flush of this cache , before the new owner takes over
* consumption .
* < p >