Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Traffic control adaptation k8s
Provide functionality
By reading the dubbo source code, it is found that there are two main functions to be provided to better complete the adaptation
Watch monitoring mechanism
GetRule to get full configuration at one time
A client is implemented. The Java version of the client only needs to be reproduced against this client. The push has high performance requirements, so grpc connection multiplexing is encapsulated on the client side.
Both functions are implemented in this PR
Performance
The push process uses grpc bidirectional stream + connection multiplexing, similar to etcd, with very high performance.
design concept
The configuration is not stored and pushed directly in the memory. GetRule also temporarily stores the configuration in memory without persistent storage.
design
Refer to the design method of etcd related functions
Possible problems