Skip to content
Snippets Groups Projects
Commit c54a22d5 authored by xujingfeng's avatar xujingfeng
Browse files

增加限流接口

parent 47cfb479
No related branches found
No related tags found
No related merge requests found
......@@ -4,6 +4,11 @@ import org.apache.dubbo.rpc.listener.CallbackListener;
/**
* @author daofeng.xjf
*
* 客户端监听器
* 可选接口
* 用户可以基于获取获取服务端的推送信息,与 CallbackService 搭配使用
*
*/
public class CallbackListenerImpl implements CallbackListener {
......
package com.aliware.tianchi;
import org.apache.dubbo.common.Constants;
import org.apache.dubbo.common.extension.Activate;
import org.apache.dubbo.rpc.Filter;
import org.apache.dubbo.rpc.Invocation;
import org.apache.dubbo.rpc.Invoker;
import org.apache.dubbo.rpc.Result;
import org.apache.dubbo.rpc.RpcException;
/**
* @author daofeng.xjf
*
* 客户端过滤器
* 可选接口
* 用户可以在客户端拦截请求和响应,捕获 rpc 调用时产生、服务端返回的已知异常。
*/
@Activate(group = Constants.CONSUMER)
public class TestClientFilter implements Filter {
@Override
public Result invoke(Invoker<?> invoker, Invocation invocation) throws RpcException {
try{
Result result = invoker.invoke(invocation);
return result;
}catch (Exception e){
throw e;
}
}
}
......@@ -11,6 +11,11 @@ import java.util.concurrent.ThreadLocalRandom;
/**
* @author daofeng.xjf
*
* 负载均衡扩展接口
* 必选接口,核心接口
* 此类可以修改实现,不可以移动类或者修改包名
* 选手需要基于此类实现自己的负载均衡算法
*/
public class UserLoadBalance implements LoadBalance {
......
com.aliware.tianchi.TestClientFilter
\ No newline at end of file
......@@ -11,6 +11,11 @@ import java.util.concurrent.ConcurrentHashMap;
/**
* @author daofeng.xjf
*
* 服务端回调服务
* 可选接口
* 用户可以基于此服务,实现服务端向客户端动态推送的功能
*
*/
public class CallbackServiceImpl implements CallbackService {
......
package com.aliware.tianchi;
import org.apache.dubbo.remoting.exchange.Request;
import org.apache.dubbo.remoting.transport.RequestLimiter;
/**
* @author daofeng.xjf
*
* 服务端限流
* 可选接口
* 在提交给后端线程池之前的扩展,可以用于服务端控制拒绝请求
*/
public class TestRequestLimiter implements RequestLimiter {
/**
* @param request 服务请求
* @param activeTaskCount 服务端对应线程池的活跃线程数
* @return false 不提交给服务端业务线程池直接返回,客户端可以在 Filter 中捕获搭配 RpcException
* true 不限流
*/
@Override
public boolean tryAcquire(Request request, int activeTaskCount) {
return true;
}
}
com.aliware.tianchi.TestRequestLimiter
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment