You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@kafka.apache.org by "Boyang Chen (JIRA)" <ji...@apache.org> on 2019/02/24 20:43:00 UTC

[jira] [Created] (KAFKA-7995) Augment singleton protocol type to list for Kafka Consumer

Boyang Chen created KAFKA-7995:
----------------------------------

             Summary: Augment singleton protocol type to list for Kafka Consumer  
                 Key: KAFKA-7995
                 URL: https://issues.apache.org/jira/browse/KAFKA-7995
             Project: Kafka
          Issue Type: Improvement
          Components: consumer, core
            Reporter: Boyang Chen


Right now Kafka consumer protocol uses a singleton marker to distinguish Kafka Connect worker and normal consumer. This is not upgrade-friendly approach since the protocol type could potential change over time. A better approach is to support multiple candidacies so that the no downtime protocol type switch could achieve.

For example, if we are trying to upgrade a Kafka Streams application towards a protocol type called "stream", right now there is no way to do this without downtime since broker will reject changing protocol type to a different one unless the group is back to empty. If we allow new member to provide a list of protocol type instead ("consumer", "stream"), there would be no compatibility issue.

Alternative approach is to invent an admin API to change group's protocol type on runtime. However, the burden introduced on administrator is not trivial, since we need to guarantee the operation series to be correct, otherwise we will see limp-upgrade experience in the midpoint, for example while we are changing protocol type there was unexpected rebalance that causes old members join failure.

 



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)