<!-- Thanks for sending a pull request! --> **What this PR does**: Add TpsLimitFilter. The TpsLimitFilter is one of the default filters. However, if the tps.limiter is nil or the tps.limit.rate < 0, the TpsLimitFilter will do nothing. 1. define the interface of TpsLimiter and the implementation supporting both service-level and method-level limitation was provided. 2. define the interface of RejectExecutionHandler. The default implementation only log the invocation info; 3. define the interface of TpsLimitStrategy. Fixed-window, thread-safe fixed-window, sliding-window were provided; **Which issue(s) this PR fixes**: [Ftr: TPSLimitFilter Support](https://github.com/apache/dubbo-go/issues/220) <!-- *Automatically closes linked issue when PR is merged. Usage: `Fixes #<issue number>`, or `Fixes (paste link of issue)`. _If PR is about `failing-tests or flakes`, please post the related issues/tests in a comment and do not use `Fixes`_* --> Fixes #220
**Special notes for your reviewer**: **Does this PR introduce a user-facing change?**: <!-- If no, just write "NONE" in the release-note block below. If yes, a release note is required: Enter your extended release note in the block below. If the PR requires additional action from users switching to the new release, include the string "action required". --> ```release-note Now user can use the TpsLimitFilter and custom their implementation by implements the interfaces RejectedExecutionHandler, TpsLimitStrategy, TpsLimiter ``` [ Full content available at: https://github.com/apache/dubbo-go/pull/237 ] This message was relayed via gitbox.apache.org for [email protected]
--------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
