org.apache.dubbo.common.URL.getIp()方法的使用及代码示例

x33g5p2x  于2022-02-01 转载在 其他  
字(13.0k)|赞(0)|评价(0)|浏览(111)

本文整理了Java中org.apache.dubbo.common.URL.getIp()方法的一些代码示例,展示了URL.getIp()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。URL.getIp()方法的具体详情如下:
包路径:org.apache.dubbo.common.URL
类名称:URL
方法名:getIp

URL.getIp介绍

[英]Fetch IP address for this URL.

Pls. note that IP should be used instead of Host when to compare with socket's address or to search in a map which use address as its key.
[中]获取此URL的IP地址。
请。请注意,当与套接字的地址进行比较或在使用地址作为密钥的映射中进行搜索时,应该使用IP而不是主机。

代码示例

代码示例来源:origin: apache/incubator-dubbo

@Override
public String getIp() {
  return super.getIp();
}

代码示例来源:origin: apache/incubator-dubbo

@Override
public String getIp() {
  return super.getIp();
}

代码示例来源:origin: apache/incubator-dubbo

@Override
public Channel getChannel(InetSocketAddress remoteAddress) {
  String host = remoteAddress.getAddress() != null ? remoteAddress.getAddress().getHostAddress() : remoteAddress.getHostName();
  int port = remoteAddress.getPort();
  Channel channel = super.getChannel(remoteAddress);
  if (channel == null) {
    for (Map.Entry<URL, Client> entry : clients.entrySet()) {
      URL url = entry.getKey();
      if (url.getIp().equals(host) && url.getPort() == port) {
        return entry.getValue();
      }
    }
  }
  return channel;
}

代码示例来源:origin: apache/incubator-dubbo

@Override
public ExchangeChannel getExchangeChannel(InetSocketAddress remoteAddress) {
  String host = remoteAddress.getAddress() != null ? remoteAddress.getAddress().getHostAddress() : remoteAddress.getHostName();
  int port = remoteAddress.getPort();
  ExchangeChannel channel = super.getExchangeChannel(remoteAddress);
  if (channel == null) {
    for (Map.Entry<URL, ExchangeClient> entry : clients.entrySet()) {
      URL url = entry.getKey();
      if (url.getIp().equals(host) && url.getPort() == port) {
        return entry.getValue();
      }
    }
  }
  return channel;
}

代码示例来源:origin: apache/incubator-dubbo

@Override
public Channel getChannel(InetSocketAddress remoteAddress) {
  String host = remoteAddress.getAddress() != null ? remoteAddress.getAddress().getHostAddress() : remoteAddress.getHostName();
  int port = remoteAddress.getPort();
  Channel channel = super.getChannel(remoteAddress);
  if (channel == null) {
    for (Map.Entry<URL, Client> entry : clients.entrySet()) {
      URL url = entry.getKey();
      if (url.getIp().equals(host) && url.getPort() == port) {
        return entry.getValue();
      }
    }
  }
  return channel;
}

代码示例来源:origin: apache/incubator-dubbo

@Override
public ExchangeChannel getExchangeChannel(InetSocketAddress remoteAddress) {
  String host = remoteAddress.getAddress() != null ? remoteAddress.getAddress().getHostAddress() : remoteAddress.getHostName();
  int port = remoteAddress.getPort();
  ExchangeChannel channel = super.getExchangeChannel(remoteAddress);
  if (channel == null) {
    for (Map.Entry<URL, ExchangeClient> entry : clients.entrySet()) {
      URL url = entry.getKey();
      if (url.getIp().equals(host) && url.getPort() == port) {
        return entry.getValue();
      }
    }
  }
  return channel;
}

代码示例来源:origin: apache/incubator-dubbo

private static boolean isClientSide(Channel channel) {
  InetSocketAddress address = channel.getRemoteAddress();
  URL url = channel.getUrl();
  return url.getPort() == address.getPort() &&
      NetUtils.filterLocalHost(url.getIp())
          .equals(NetUtils.filterLocalHost(address.getAddress().getHostAddress()));
}

代码示例来源:origin: apache/incubator-dubbo

private static boolean isClientSide(Channel channel) {
  InetSocketAddress address = channel.getRemoteAddress();
  URL url = channel.getUrl();
  return url.getPort() == address.getPort() &&
      NetUtils.filterLocalHost(url.getIp())
          .equals(NetUtils.filterLocalHost(address.getAddress().getHostAddress()));
}

代码示例来源:origin: apache/incubator-dubbo

private boolean isClientSide(Channel channel) {
  InetSocketAddress address = channel.getRemoteAddress();
  URL url = channel.getUrl();
  return url.getPort() == address.getPort() &&
      NetUtils.filterLocalHost(channel.getUrl().getIp())
          .equals(NetUtils.filterLocalHost(address.getAddress().getHostAddress()));
}

代码示例来源:origin: apache/incubator-dubbo

private boolean isClientSide(Channel channel) {
  InetSocketAddress address = channel.getRemoteAddress();
  URL url = channel.getUrl();
  return url.getPort() == address.getPort() &&
      NetUtils.filterLocalHost(channel.getUrl().getIp())
          .equals(NetUtils.filterLocalHost(address.getAddress().getHostAddress()));
}

代码示例来源:origin: apache/incubator-dubbo

@Override
public void rejectedExecution(Runnable r, ThreadPoolExecutor e) {
  String msg = String.format("Thread pool is EXHAUSTED!" +
          " Thread Name: %s, Pool Size: %d (active: %d, core: %d, max: %d, largest: %d), Task: %d (completed: %d)," +
          " Executor status:(isShutdown:%s, isTerminated:%s, isTerminating:%s), in %s://%s:%d!",
      threadName, e.getPoolSize(), e.getActiveCount(), e.getCorePoolSize(), e.getMaximumPoolSize(), e.getLargestPoolSize(),
      e.getTaskCount(), e.getCompletedTaskCount(), e.isShutdown(), e.isTerminated(), e.isTerminating(),
      url.getProtocol(), url.getIp(), url.getPort());
  logger.warn(msg);
  dumpJStack();
  throw new RejectedExecutionException(msg);
}

代码示例来源:origin: apache/incubator-dubbo

@Override
public void rejectedExecution(Runnable r, ThreadPoolExecutor e) {
  String msg = String.format("Thread pool is EXHAUSTED!" +
          " Thread Name: %s, Pool Size: %d (active: %d, core: %d, max: %d, largest: %d), Task: %d (completed: %d)," +
          " Executor status:(isShutdown:%s, isTerminated:%s, isTerminating:%s), in %s://%s:%d!",
      threadName, e.getPoolSize(), e.getActiveCount(), e.getCorePoolSize(), e.getMaximumPoolSize(), e.getLargestPoolSize(),
      e.getTaskCount(), e.getCompletedTaskCount(), e.isShutdown(), e.isTerminated(), e.isTerminating(),
      url.getProtocol(), url.getIp(), url.getPort());
  logger.warn(msg);
  dumpJStack();
  throw new RejectedExecutionException(msg);
}

代码示例来源:origin: apache/incubator-dubbo

protected boolean isClientSide(Channel channel) {
  String side = (String) channel.getAttribute(Constants.SIDE_KEY);
  if ("client".equals(side)) {
    return true;
  } else if ("server".equals(side)) {
    return false;
  } else {
    InetSocketAddress address = channel.getRemoteAddress();
    URL url = channel.getUrl();
    boolean client = url.getPort() == address.getPort()
        && NetUtils.filterLocalHost(url.getIp()).equals(
        NetUtils.filterLocalHost(address.getAddress()
            .getHostAddress()));
    channel.setAttribute(Constants.SIDE_KEY, client ? "client"
        : "server");
    return client;
  }
}

代码示例来源:origin: apache/incubator-dubbo

protected boolean isClientSide(Channel channel) {
  String side = (String) channel.getAttribute(Constants.SIDE_KEY);
  if ("client".equals(side)) {
    return true;
  } else if ("server".equals(side)) {
    return false;
  } else {
    InetSocketAddress address = channel.getRemoteAddress();
    URL url = channel.getUrl();
    boolean client = url.getPort() == address.getPort()
        && NetUtils.filterLocalHost(url.getIp()).equals(
        NetUtils.filterLocalHost(address.getAddress()
            .getHostAddress()));
    channel.setAttribute(Constants.SIDE_KEY, client ? "client"
        : "server");
    return client;
  }
}

代码示例来源:origin: apache/incubator-dubbo

private void receive(String msg, InetSocketAddress remoteAddress) {
  if (logger.isInfoEnabled()) {
    logger.info("Receive multicast message: " + msg + " from " + remoteAddress);
  }
  if (msg.startsWith(Constants.REGISTER)) {
    URL url = URL.valueOf(msg.substring(Constants.REGISTER.length()).trim());
    registered(url);
  } else if (msg.startsWith(Constants.UNREGISTER)) {
    URL url = URL.valueOf(msg.substring(Constants.UNREGISTER.length()).trim());
    unregistered(url);
  } else if (msg.startsWith(Constants.SUBSCRIBE)) {
    URL url = URL.valueOf(msg.substring(Constants.SUBSCRIBE.length()).trim());
    Set<URL> urls = getRegistered();
    if (CollectionUtils.isNotEmpty(urls)) {
      for (URL u : urls) {
        if (UrlUtils.isMatch(url, u)) {
          String host = remoteAddress != null && remoteAddress.getAddress() != null ? remoteAddress.getAddress().getHostAddress() : url.getIp();
          if (url.getParameter("unicast", true) // Whether the consumer's machine has only one process
              && !NetUtils.getLocalHost().equals(host)) { // Multiple processes in the same machine cannot be unicast with unicast or there will be only one process receiving information
            unicast(Constants.REGISTER + " " + u.toFullString(), host);
          } else {
            multicast(Constants.REGISTER + " " + u.toFullString());
          }
        }
      }
    }
  }/* else if (msg.startsWith(UNSUBSCRIBE)) {
  }*/
}

代码示例来源:origin: apache/incubator-dubbo

private void receive(String msg, InetSocketAddress remoteAddress) {
  if (logger.isInfoEnabled()) {
    logger.info("Receive multicast message: " + msg + " from " + remoteAddress);
  }
  if (msg.startsWith(Constants.REGISTER)) {
    URL url = URL.valueOf(msg.substring(Constants.REGISTER.length()).trim());
    registered(url);
  } else if (msg.startsWith(Constants.UNREGISTER)) {
    URL url = URL.valueOf(msg.substring(Constants.UNREGISTER.length()).trim());
    unregistered(url);
  } else if (msg.startsWith(Constants.SUBSCRIBE)) {
    URL url = URL.valueOf(msg.substring(Constants.SUBSCRIBE.length()).trim());
    Set<URL> urls = getRegistered();
    if (CollectionUtils.isNotEmpty(urls)) {
      for (URL u : urls) {
        if (UrlUtils.isMatch(url, u)) {
          String host = remoteAddress != null && remoteAddress.getAddress() != null ? remoteAddress.getAddress().getHostAddress() : url.getIp();
          if (url.getParameter("unicast", true) // Whether the consumer's machine has only one process
              && !NetUtils.getLocalHost().equals(host)) { // Multiple processes in the same machine cannot be unicast with unicast or there will be only one process receiving information
            unicast(Constants.REGISTER + " " + u.toFullString(), host);
          } else {
            multicast(Constants.REGISTER + " " + u.toFullString());
          }
        }
      }
    }
  }/* else if (msg.startsWith(UNSUBSCRIBE)) {
  }*/
}

代码示例来源:origin: apache/incubator-dubbo

@Override
public void received(Channel channel, Object message) throws RemotingException {
  ExecutorService cexecutor = getExecutorService();
  try {
    cexecutor.execute(new ChannelEventRunnable(channel, handler, ChannelState.RECEIVED, message));
  } catch (Throwable t) {
    //fix, reject exception can not be sent to consumer because thread pool is full, resulting in consumers waiting till timeout.
    if (message instanceof Request && t instanceof RejectedExecutionException) {
      Request request = (Request) message;
      if (request.isTwoWay()) {
        String msg = "Server side(" + url.getIp() + "," + url.getPort() + ") threadpool is exhausted ,detail msg:" + t.getMessage();
        Response response = new Response(request.getId(), request.getVersion());
        response.setStatus(Response.SERVER_THREADPOOL_EXHAUSTED_ERROR);
        response.setErrorMessage(msg);
        channel.send(response);
        return;
      }
    }
    throw new ExecutionException(message, channel, getClass() + " error when process received event .", t);
  }
}

代码示例来源:origin: apache/incubator-dubbo

@Override
public void received(Channel channel, Object message) throws RemotingException {
  ExecutorService cexecutor = getExecutorService();
  try {
    cexecutor.execute(new ChannelEventRunnable(channel, handler, ChannelState.RECEIVED, message));
  } catch (Throwable t) {
    //fix, reject exception can not be sent to consumer because thread pool is full, resulting in consumers waiting till timeout.
    if (message instanceof Request && t instanceof RejectedExecutionException) {
      Request request = (Request) message;
      if (request.isTwoWay()) {
        String msg = "Server side(" + url.getIp() + "," + url.getPort() + ") threadpool is exhausted ,detail msg:" + t.getMessage();
        Response response = new Response(request.getId(), request.getVersion());
        response.setStatus(Response.SERVER_THREADPOOL_EXHAUSTED_ERROR);
        response.setErrorMessage(msg);
        channel.send(response);
        return;
      }
    }
    throw new ExecutionException(message, channel, getClass() + " error when process received event .", t);
  }
}

代码示例来源:origin: apache/incubator-dubbo

@Override
public void received(Channel channel, Object message) throws RemotingException {
  ExecutorService cexecutor = getExecutorService();
  try {
    cexecutor.execute(new ChannelEventRunnable(channel, handler, ChannelState.RECEIVED, message));
  } catch (Throwable t) {
    //TODO A temporary solution to the problem that the exception information can not be sent to the opposite end after the thread pool is full. Need a refactoring
    //fix The thread pool is full, refuses to call, does not return, and causes the consumer to wait for time out
    if(message instanceof Request && t instanceof RejectedExecutionException){
      Request request = (Request)message;
      if(request.isTwoWay()){
        String msg = "Server side(" + url.getIp() + "," + url.getPort() + ") threadpool is exhausted ,detail msg:" + t.getMessage();
        Response response = new Response(request.getId(), request.getVersion());
        response.setStatus(Response.SERVER_THREADPOOL_EXHAUSTED_ERROR);
        response.setErrorMessage(msg);
        channel.send(response);
        return;
      }
    }
    throw new ExecutionException(message, channel, getClass() + " error when process received event .", t);
  }
}

代码示例来源:origin: apache/incubator-dubbo

@Override
public void received(Channel channel, Object message) throws RemotingException {
  ExecutorService cexecutor = getExecutorService();
  try {
    cexecutor.execute(new ChannelEventRunnable(channel, handler, ChannelState.RECEIVED, message));
  } catch (Throwable t) {
    //TODO A temporary solution to the problem that the exception information can not be sent to the opposite end after the thread pool is full. Need a refactoring
    //fix The thread pool is full, refuses to call, does not return, and causes the consumer to wait for time out
    if(message instanceof Request && t instanceof RejectedExecutionException){
      Request request = (Request)message;
      if(request.isTwoWay()){
        String msg = "Server side(" + url.getIp() + "," + url.getPort() + ") threadpool is exhausted ,detail msg:" + t.getMessage();
        Response response = new Response(request.getId(), request.getVersion());
        response.setStatus(Response.SERVER_THREADPOOL_EXHAUSTED_ERROR);
        response.setErrorMessage(msg);
        channel.send(response);
        return;
      }
    }
    throw new ExecutionException(message, channel, getClass() + " error when process received event .", t);
  }
}

相关文章