<!--  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]

Reply via email to