Package org.apache.dubbo.rpc.filter
Class ActiveLimitFilter
java.lang.Object
org.apache.dubbo.rpc.filter.ActiveLimitFilter
- All Implemented Interfaces:
BaseFilter,BaseFilter.Listener,Filter
@Activate(group="consumer",
value="actives")
public class ActiveLimitFilter
extends Object
implements Filter, BaseFilter.Listener
ActiveLimitFilter restrict the concurrent client invocation for a service or service's method from client side.
To use active limit filter, configured url with actives and provide valid >0 integer value.
e.g. invalid input: '<'dubbo:reference id="demoService" check="false" interface="org.apache.dubbo.demo.DemoService" "actives"="2"/>
In the above example maximum 2 concurrent invocation is allowed.
If there are more than configured (in this example 2) is trying to invoke remote method, then rest of invocation
will wait for configured timeout(default is 0 second) before invocation gets kill by dubbo.
- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from interface org.apache.dubbo.rpc.BaseFilter
BaseFilter.Listener -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptioninvoke(Invoker<?> invoker, Invocation invocation) Always call invoker.invoke() in the implementation to hand over the request to the next filter node.voidonError(Throwable t, Invoker<?> invoker, Invocation invocation) This method will be called on detection of framework exceptions, for example, TimeoutException, NetworkException Exception raised in Filters, etc.voidonResponse(Result appResponse, Invoker<?> invoker, Invocation invocation) This method will only be called on successful remote rpc execution, that means, the service in on remote received the request and the result (normal or exceptional) returned successfully.
-
Constructor Details
-
ActiveLimitFilter
public ActiveLimitFilter()
-
-
Method Details
-
invoke
Description copied from interface:BaseFilterAlways call invoker.invoke() in the implementation to hand over the request to the next filter node.- Specified by:
invokein interfaceBaseFilter- Throws:
RpcException
-
onResponse
Description copied from interface:BaseFilter.ListenerThis method will only be called on successful remote rpc execution, that means, the service in on remote received the request and the result (normal or exceptional) returned successfully.- Specified by:
onResponsein interfaceBaseFilter.Listener- Parameters:
appResponse- , the rpc call result, it can represent both normal result and exceptional resultinvoker- , contextinvocation- , context
-
onError
Description copied from interface:BaseFilter.ListenerThis method will be called on detection of framework exceptions, for example, TimeoutException, NetworkException Exception raised in Filters, etc.- Specified by:
onErrorin interfaceBaseFilter.Listener- Parameters:
t- , framework exceptioninvoker- , contextinvocation- , context
-