[ https://issues.apache.org/jira/browse/KAFKA-3959?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15419471#comment-15419471 ]
Grant Henke commented on KAFKA-3959: ------------------------------------ I would like to present an alternative option. This problem exists with any topic created using default.replication.factor > 1 as well. That prevents using 2 or 3 as the configuration default because we want to support single nodes clusters without changing the defaults. Instead of preventing topics from being created with a low replication factor (unless min.isr is set). Instead it would be really nice if we tracked a "target replication factor" in the topic metadata. This is an improvement over assuming the target replication factor based on the actual replicas as is done today and can actually result in a more accurate under replicated count. This change would also help support any ability to automatically maintain the desired replication factor as nodes are started, stopped, etc. Some related KIPs for that are: * [KIP-73 Replication Quotas|https://cwiki.apache.org/confluence/display/KAFKA/KIP-73+Replication+Quotas] * [KIP-46: Self Healing Kafka|https://cwiki.apache.org/confluence/display/KAFKA/KIP-46%3A+Self+Healing+Kafka] Would that be a viable option? > __consumer_offsets wrong number of replicas at startup > ------------------------------------------------------ > > Key: KAFKA-3959 > URL: https://issues.apache.org/jira/browse/KAFKA-3959 > Project: Kafka > Issue Type: Bug > Components: consumer, offset manager, replication > Affects Versions: 0.9.0.1, 0.10.0.0 > Environment: Brokers of 3 kafka nodes running Red Hat Enterprise > Linux Server release 7.2 (Maipo) > Reporter: Alban Hurtaud > > When creating a stack of 3 kafka brokers, the consumer is starting faster > than kafka nodes and when trying to read a topic, only one kafka node is > available. > So the __consumer_offsets is created with a replication factor set to 1 > (instead of configured 3) : > offsets.topic.replication.factor=3 > default.replication.factor=3 > min.insync.replicas=2 > Then, other kafka nodes go up and we have exceptions because the replicas # > for __consumer_offsets is 1 and min insync is 2. So exceptions are thrown. > What I missed is : Why the __consumer_offsets is created with replication to > 1 (when 1 broker is running) whereas in server.properties it is set to 3 ? > To reproduce : > - Prepare 3 kafka nodes with the 3 lines above added to servers.properties. > - Run one kafka, > - Run one consumer (the __consumer_offsets is created with replicas =1) > - Run 2 more kafka nodes -- This message was sent by Atlassian JIRA (v6.3.4#6332)