[ 
https://issues.apache.org/jira/browse/KAFKA-6995?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16505123#comment-16505123
 ] 

Matthias J. Sax commented on KAFKA-6995:
----------------------------------------

You are right, that for stateless application, fail-over would be delayed until 
session.timeout.ms passes and the group coordinator detect the missing 
heartbeat. I am still hesitant to make it public, because it's quite advanced. 
If you really want to modify it, you can still do is as of today by providing a 
custom `KafkaClientSupplier` to `KafkaStreams` constructor. There, you can 
modify the consumer config before the consumer is actually created and thus, 
you can overwrite the hard coded value from "false" to "true" if you need.

Not sure what [~guozhang] thinks about making the config public. I am not 
completely against it, just not 100% convinced about it yet.

> Make config "internal.leave.group.on.close" public
> --------------------------------------------------
>
>                 Key: KAFKA-6995
>                 URL: https://issues.apache.org/jira/browse/KAFKA-6995
>             Project: Kafka
>          Issue Type: Improvement
>          Components: consumer, streams
>            Reporter: Boyang Chen
>            Assignee: Boyang Chen
>            Priority: Major
>              Labels: needs-kip
>
> We are proposing to make the config "internal.leave.group.on.close" public. 
> The reason is that for heavy state application the sticky assignment won't 
> work because each stream worker will leave group during rolling restart, and 
> there is a possibility that some members are left and rejoined while others 
> are still awaiting restart. This would then cause multiple rebalance because 
> after the ongoing rebalance is done, we are expecting late members to rejoin 
> and move state from `stable` to `prepareBalance`. To solve this problem, 
> heavy state application needs to use this config to avoid member list update, 
> so that at most one rebalance will be triggered at a proper time when all the 
> members are rejoined during rolling restart. This should just be one line 
> change.
> Code here:
> * <code>internal.leave.group.on.close</code>
>  * Whether or not the consumer should leave the group on close. If set to 
> <code>false</code> then a rebalance
>  * won't occur until <code>session.timeout.ms</code> expires.
>  *
>  * <p>
>  * Note: this is an internal configuration and could be changed in the future 
> in a backward incompatible way
>  *
>  */
>  static final String LEAVE_GROUP_ON_CLOSE_CONFIG = 
> "internal.leave.group.on.close";



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

Reply via email to