qianye1001 opened a new pull request, #1310:
URL: https://github.com/apache/rocketmq-clients/pull/1310

   ### Which Issue(s) This PR Fixes
   
   Fixes #1309
   
   ### Brief Description
   
   This change improves two Java gRPC client failure paths:
   
   - Normalize transport-level gRPC `RESOURCE_EXHAUSTED` failures to 
`TooManyRequestsException`, so producer retries use the existing throttling 
backoff instead of retrying immediately.
   - Recover a potentially half-open transport from the heartbeat path. 
`UNAVAILABLE` triggers recovery immediately, while two consecutive 
`DEADLINE_EXCEEDED` heartbeat failures trigger recovery after filtering a 
transient timeout.
   
   Transport recovery calls `ManagedChannel.enterIdle()` so the next RPC 
creates a new transport without replacing the whole `RpcClient` or disrupting 
ordinary send failures. Any successful heartbeat resets the timeout counter, 
non-connectivity failures such as `RESOURCE_EXHAUSTED` do not trigger recovery, 
and a 30-second cooldown prevents reconnect storms.
   
   ### How Did You Test This Change?
   
   Using JDK 11:
   
   ```text
   mvn -pl client -am -DskipITs test
   ```
   
   Result: 281 tests run, 0 failures, 0 errors, 1 skipped.
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to