Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Enhancement] Optimize the graceful shutdown for the proxy remoting protocol server. #8599

Closed
1 task done
qianye1001 opened this issue Aug 29, 2024 · 3 comments · Fixed by #8603 or #8685 · May be fixed by #8862
Closed
1 task done

[Enhancement] Optimize the graceful shutdown for the proxy remoting protocol server. #8599

qianye1001 opened this issue Aug 29, 2024 · 3 comments · Fixed by #8603 or #8685 · May be fixed by #8862

Comments

@qianye1001
Copy link
Contributor

Before Creating the Enhancement Request

  • I have confirmed that this should be classified as an enhancement rather than a bug/feature.

Summary

When the proxy shutdown, gRPC services utilize the HTTP2 GO_AWAY mechanism to gracefully shut down. However, the current implementation of the GO_AWAY mechanism in the remoting protocol still has some unresolved issues, including the lack of server-side logging, repeated channel recreation, and the GO_AWAY only can be received once by client.

Motivation

Optimize the graceful shutdown for the proxy remoting protocol server.

Describe the Solution You'd Like

  1. add log when proxy write response code GO_AWAY
  2. make client recognize GO_AWAY more then once.

Describe Alternatives You've Considered

need more discuss

Additional Context

No response

@qianye1001
Copy link
Contributor Author

image

Here, the parent class method is called directly , leading to an inability to handle the scenario where a GO_AWAY message is received for the second time.

maybe we need to utilize the subclass's method to recursively proceed until either time is exhausted or the maximum number of iterations is reached.

@qianye1001
Copy link
Contributor Author

image

when send message,if client receives GO_AWAY twice, it will throw a MQBrokerException with responseCode.GO_AWAY , but responseCode.GO_AWAY is not in retryResponseCodes, lead to retrying 3 times Invalid

@qianye1001
Copy link
Contributor Author

@drpmma

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment