1.新建路由工厂
import org.apache.dubbo.common.URL;
import org.apache.dubbo.common.extension.Activate;
import org.apache.dubbo.rpc.cluster.Router;
import org.apache.dubbo.rpc.cluster.RouterFactory;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@Activate(order = 1)
public class EnvRouterFactory implements RouterFactory {
private static final Logger LOGGER = LoggerFactory.getLogger(EnvRouterFactory.class);
@Override
public Router getRouter(URL url) {
LOGGER.info("启动dubbo特性环境路由");
return new EnvRouter();
}
}
2. 新建路由
public class EnvRouter extends AbstractRouter {
private static final Logger LOGGER = LoggerFactory.getLogger(EnvRouter.class);
public EnvRouter() {
this.priority = Integer.MAX_VALUE + 2;
}
@Override
public List> route(List> invokers, URL url, Invocation invocation)
throws RpcException {
//TODO 逻辑处理
return invokers;
}
}
3.在/resrouces/meta-INF/dubbo/目录新建org.apache.dubbo.rpc.cluster.RouterFactory配置文件
envRouterFactory=com.weimai.envrouter.dubbo.router.EnvRouterFactory



