Sal Sorrentino created KAFKA-16514:
--------------------------------------

             Summary: Kafka Streams: stream.close(CloseOptions) does not 
respect options.leaveGroup flag.
                 Key: KAFKA-16514
                 URL: https://issues.apache.org/jira/browse/KAFKA-16514
             Project: Kafka
          Issue Type: Bug
          Components: streams
            Reporter: Sal Sorrentino


Working with Kafka Streams 3.7.0, but may affect earlier versions as well.

 

When attempting to shutdown a streams application and leave the associated 
consumer group, the supplied `leaveGroup` option seems to have no effect. 
Sample code:


{code:java}
CloseOptions options = new CloseOptions().leaveGroup(true);
stream.close(options);{code}

The expected behavior here is that the group member would shutdown and leave 
the group, immediately triggering a consumer group rebalance. In practice, the 
rebalance happens after the appropriate timeout configuration has expired.

I understand the default behavior in that there is an assumption that ant 
associated StateStores would be persisted to disk and that in the case of a 
rolling restart/deployment, the rebalance delay may be preferable. However, in 
our application we are using in-memory state stores and standby replicas. There 
is no benefit in delaying the rebalance in this setup and we are in need of a 
way to force a member to leave the group when shutting down.



The workaround we found is to set an undocumented internal StreamConfig to 
enforce this behavior:


{code:java}
props.put("internal.leave.group.on.close", true);
{code}
To state the obvious, this is less than ideal.

 

 



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to