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

Lianet Magrans updated KAFKA-15533:
-----------------------------------
    Description: 
We want to ensure ConsumerGroupHeartbeatRequest is as lightweight as possible, 
so a lot of fields in it don't need to be resend. An example would be the 
rebalanceTimeoutMs, currently we have the following code:

 

 
{code:java}
ConsumerGroupHeartbeatRequestData data = new ConsumerGroupHeartbeatRequestData()
    .setGroupId(membershipManager.groupId())
    .setMemberEpoch(membershipManager.memberEpoch())
    .setMemberId(membershipManager.memberId())
    .setRebalanceTimeoutMs(rebalanceTimeoutMs); {code}
 

 

We should encapsulate these once-used fields into a class such as 
HeartbeatMetdataBuilder, and it should maintain a state of whether a certain 
field needs to be sent or not.

 

Note that, currently only 3 fields are mandatory in the request:
 * groupId
 * memberEpoch
 * memberId

Note that on retriable errors and network errors (ex. timeout) a full request 
should be sent to the broker.

  was:
We want to ensure ConsumerGroupHeartbeatRequest is as lightweight as possible, 
so a lot of fields in it don't need to be resend. An example would be the 
rebalanceTimeoutMs, currently we have the following code:

 

 
{code:java}
ConsumerGroupHeartbeatRequestData data = new ConsumerGroupHeartbeatRequestData()
    .setGroupId(membershipManager.groupId())
    .setMemberEpoch(membershipManager.memberEpoch())
    .setMemberId(membershipManager.memberId())
    .setRebalanceTimeoutMs(rebalanceTimeoutMs); {code}
 

 

We should encapsulate these once-used fields into a class such as 
HeartbeatMetdataBuilder, and it should maintain a state of whether a certain 
field needs to be sent or not.

 

Note that, currently only 3 fields are mandatory in the request:
 * groupId
 * memberEpoch
 * memberId

Note that on retriable errors a full request should be sent to the broker.


> Ensure HeartbeatRequestManager only send out some fields once
> -------------------------------------------------------------
>
>                 Key: KAFKA-15533
>                 URL: https://issues.apache.org/jira/browse/KAFKA-15533
>             Project: Kafka
>          Issue Type: Sub-task
>          Components: clients, consumer
>            Reporter: Philip Nee
>            Assignee: Philip Nee
>            Priority: Minor
>              Labels: kip-848, kip-848-client-support, kip-848-e2e, 
> kip-848-preview
>
> We want to ensure ConsumerGroupHeartbeatRequest is as lightweight as 
> possible, so a lot of fields in it don't need to be resend. An example would 
> be the rebalanceTimeoutMs, currently we have the following code:
>  
>  
> {code:java}
> ConsumerGroupHeartbeatRequestData data = new 
> ConsumerGroupHeartbeatRequestData()
>     .setGroupId(membershipManager.groupId())
>     .setMemberEpoch(membershipManager.memberEpoch())
>     .setMemberId(membershipManager.memberId())
>     .setRebalanceTimeoutMs(rebalanceTimeoutMs); {code}
>  
>  
> We should encapsulate these once-used fields into a class such as 
> HeartbeatMetdataBuilder, and it should maintain a state of whether a certain 
> field needs to be sent or not.
>  
> Note that, currently only 3 fields are mandatory in the request:
>  * groupId
>  * memberEpoch
>  * memberId
> Note that on retriable errors and network errors (ex. timeout) a full request 
> should be sent to the broker.



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

Reply via email to