[ 
https://issues.apache.org/jira/browse/KAFKA-2388?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Onur Karaman updated KAFKA-2388:
--------------------------------
    Description: 
According to the mailing list discussion on the consumer interface, we'll 
replace:
{code}
public void subscribe(String... topics);
public void subscribe(TopicPartition... partitions);
public Set<TopicPartition> subscriptions();
{code}
with:
{code}
void subscribe(List<String> topics, RebalanceCallback callback);
void assign(List<TopicPartition> partitions);
List<String> subscriptions();
List<TopicPartition> assignments();
{code}

We don't need the unsubscribe APIs anymore.

The RebalanceCallback would look like:
{code}
interface RebalanceCallback {
  void onAssignment(List<TopicPartition> partitions);
  void onRevocation(List<TopicPartition> partitions);

  // handle non-existing topics, etc.
  void onError(Exception e);
}
{code}

  was:
According to the mailing list discussion, the consumer interface will replace:
{code}
public void subscribe(String... topics);
public void subscribe(TopicPartition... partitions);
public Set<TopicPartition> subscriptions();
{code}
with:
{code}
void subscribe(List<String> topics, RebalanceCallback callback);
void assign(List<TopicPartition> partitions);
List<String> subscriptions();
List<TopicPartition> assignments();
{code}

We don't need the unsubscribe APIs anymore.

The RebalanceCallback would look like:
{code}
interface RebalanceCallback {
  void onAssignment(List<TopicPartition> partitions);
  void onRevocation(List<TopicPartition> partitions);

  // handle non-existing topics, etc.
  void onError(Exception e);
}
{code}


> subscribe(topic)/unsubscribe(topic) should either take a callback to allow 
> user to handle exceptions or it should be synchronous.
> ---------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: KAFKA-2388
>                 URL: https://issues.apache.org/jira/browse/KAFKA-2388
>             Project: Kafka
>          Issue Type: Sub-task
>            Reporter: Jiangjie Qin
>            Assignee: Dong Lin
>
> According to the mailing list discussion on the consumer interface, we'll 
> replace:
> {code}
> public void subscribe(String... topics);
> public void subscribe(TopicPartition... partitions);
> public Set<TopicPartition> subscriptions();
> {code}
> with:
> {code}
> void subscribe(List<String> topics, RebalanceCallback callback);
> void assign(List<TopicPartition> partitions);
> List<String> subscriptions();
> List<TopicPartition> assignments();
> {code}
> We don't need the unsubscribe APIs anymore.
> The RebalanceCallback would look like:
> {code}
> interface RebalanceCallback {
>   void onAssignment(List<TopicPartition> partitions);
>   void onRevocation(List<TopicPartition> partitions);
>   // handle non-existing topics, etc.
>   void onError(Exception e);
> }
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to