from:http://www.jameswxx.com/%E4%B8%AD%E9%97%B4%E4%BB%B6/%E8%A7%A3%E5%86%B3dubbo%E9%97%AE%E9%A2%98%EF%BC%9Aforbid-consumer/
线下环境经常出现类似这种异常:
com.alibaba.dubbo.rpc.RpcException: Forbid consumer 10.0.53.69 access service com.kuaidadi.op.api.pay.service.PayChannelConfigRemoteService from registry 10.0.50.150:2181 use dubbo version 2.5.3, Please check registry access list (whitelist/blacklist).
public List<Invoker<T>> doList(Invocation invocation) {if (forbidden ) {throw new RpcException(RpcException.FORBIDDEN_EXCEPTION , ” Forbid consumer “ + NetUtils. getLocalHost() + ” access service “ + getInterface().getName() + ” from registry “ + getUrl().getAddress() + ” use dubbo version “ + Version.getVersion() + “, Please check registry access list (whitelist/blacklist).”);}
private void refreshInvoker(List<URL> invokerUrls){if (invokerUrls != null && invokerUrls.size() == 1 && invokerUrls.get(0) != null && Constants.EMPTY_PROTOCOL .equals(invokerUrls.get(0).getProtocol())) {this.forbidden = true; // 禁止访问this.methodInvokerMap = null; // 置空列表destroyAllInvokers(); // 关闭所有Invoker}
private List<URL> toUrlsWithEmpty(URL consumer, String path, List<String> providers) {List<URL> urls = toUrlsWithoutEmpty(consumer, providers);if (urls == null || urls.isEmpty()) {int i = path.lastIndexOf(‘/’ );String category = i < 0 ? path : path.substring(i + 1);URL empty = consumer.setProtocol(Constants.EMPTY_PROTOCOL ).addParameter(Constants. CATEGORY_KEY, category);urls.add(empty);}return urls;}
原文:http://www.blogjava.net/xiaomage234/archive/2016/02/29/429480.html