消費者在調(diào)用提供者時, 需要從多個提供者中選擇符合條件的提供者, 其中涉及路由. 如何SPI自己的實現(xiàn)的路由
<dependency>
<groupId>org.apache.dubbo</groupId>
<artifactId>dubbo</artifactId>
<version>2.7.8</version>
</dependency>
package com.infuq.consumer;
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;
@Activate
public class NotFoundMethodRouterFactory implements RouterFactory {
@Override
public Router getRouter(URL url) {
return new NotFoundMethodRouter();
}
}
package com.infuq.consumer;
import org.apache.dubbo.common.URL;
import org.apache.dubbo.rpc.Invocation;
import org.apache.dubbo.rpc.Invoker;
import org.apache.dubbo.rpc.cluster.router.AbstractRouter;
import java.util.List;
public class NotFoundMethodRouter extends AbstractRouter {
@Override
public <T> List<Invoker<T>> route(List<Invoker<T>> invokers, URL url, Invocation invocation) throws org.apache.dubbo.rpc.RpcException {
return invokers;
}
}
image.png
文件內(nèi)容
method=com.infuq.consumer.NotFoundMethodRouterFactory