Skip to content
Snippets Groups Projects
TestRequestLimiter.java 799 B
Newer Older
xujingfeng's avatar
xujingfeng committed
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
xujingfeng's avatar
xujingfeng committed
     *          true 不限流
     */
    @Override
    public boolean tryAcquire(Request request, int activeTaskCount) {
Aiolos's avatar
Aiolos committed
        if (activeTaskCount > 188) return false;
xujingfeng's avatar
xujingfeng committed
        return true;
    }

}