org.elasticsearch.cluster.node.DiscoveryNodes.getLocalNode()方法的使用及代码示例

x33g5p2x  于2022-01-18 转载在 其他  
字(12.1k)|赞(0)|评价(0)|浏览(115)

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

DiscoveryNodes.getLocalNode介绍

[英]Get the local node
[中]获取本地节点

代码示例

代码示例来源:origin: org.elasticsearch/elasticsearch

@Override
public String toString() {
  StringBuilder sb = new StringBuilder();
  sb.append("nodes: \n");
  for (DiscoveryNode node : this) {
    sb.append("   ").append(node);
    if (node == getLocalNode()) {
      sb.append(", local");
    }
    if (node == getMasterNode()) {
      sb.append(", master");
    }
    sb.append("\n");
  }
  return sb.toString();
}

代码示例来源:origin: org.elasticsearch/elasticsearch

/**
 * The local node.
 */
public DiscoveryNode localNode() {
  DiscoveryNode localNode = state().getNodes().getLocalNode();
  if (localNode == null) {
    throw new IllegalStateException("No local node found. Is the node started?");
  }
  return localNode;
}

代码示例来源:origin: org.elasticsearch/elasticsearch

private static List<ShardRouting> collectAttributeShards(AttributesKey key, DiscoveryNodes nodes, ArrayList<ShardRouting> from) {
  final ArrayList<ShardRouting> to = new ArrayList<>();
  for (final String attribute : key.attributes) {
    final String localAttributeValue = nodes.getLocalNode().getAttributes().get(attribute);
    if (localAttributeValue != null) {
      for (Iterator<ShardRouting> iterator = from.iterator(); iterator.hasNext(); ) {
        ShardRouting fromShard = iterator.next();
        final DiscoveryNode discoveryNode = nodes.get(fromShard.currentNodeId());
        if (discoveryNode == null) {
          iterator.remove(); // node is not present anymore - ignore shard
        } else if (localAttributeValue.equals(discoveryNode.getAttributes().get(attribute))) {
          iterator.remove();
          to.add(fromShard);
        }
      }
    }
  }
  return Collections.unmodifiableList(to);
}

代码示例来源:origin: org.elasticsearch/elasticsearch

protected static boolean isDataOnlyNode(ClusterState state) {
  return ((state.nodes().getLocalNode().isMasterNode() == false) && state.nodes().getLocalNode().isDataNode());
}

代码示例来源:origin: org.elasticsearch/elasticsearch

@Override
  public void messageReceived(VerifyNodeRepositoryRequest request, TransportChannel channel) throws Exception {
    DiscoveryNode localNode = clusterService.state().nodes().getLocalNode();
    try {
      doVerify(request.repository, request.verificationToken, localNode);
    } catch (Exception ex) {
      logger.warn(() -> new ParameterizedMessage("[{}] failed to verify repository", request.repository), ex);
      throw ex;
    }
    channel.sendResponse(TransportResponse.Empty.INSTANCE);
  }
}

代码示例来源:origin: org.elasticsearch/elasticsearch

private PingResponse createPingResponse(ClusterState clusterState) {
  DiscoveryNodes discoNodes = clusterState.nodes();
  return new PingResponse(discoNodes.getLocalNode(), discoNodes.getMasterNode(), clusterState);
}

代码示例来源:origin: org.elasticsearch/elasticsearch

public static Set<Index> getRelevantIndices(ClusterState state, ClusterState previousState, Set<Index> previouslyWrittenIndices) {
  Set<Index> relevantIndices;
  if (isDataOnlyNode(state)) {
    relevantIndices = getRelevantIndicesOnDataOnlyNode(state, previousState, previouslyWrittenIndices);
  } else if (state.nodes().getLocalNode().isMasterNode()) {
    relevantIndices = getRelevantIndicesForMasterEligibleNode(state);
  } else {
    relevantIndices = Collections.emptySet();
  }
  return relevantIndices;
}

代码示例来源:origin: org.elasticsearch/elasticsearch

DiscoveryNode localNode = lastDiscoveryNodes.getLocalNode();
if (localNode == null) {

代码示例来源:origin: org.elasticsearch/elasticsearch

/**
 * does simple sanity check of the incoming cluster state. Throws an exception on rejections.
 */
static void validateIncomingState(Logger logger, ClusterState incomingState, ClusterState lastState) {
  final ClusterName incomingClusterName = incomingState.getClusterName();
  if (!incomingClusterName.equals(lastState.getClusterName())) {
    logger.warn("received cluster state from [{}] which is also master but with a different cluster name [{}]",
      incomingState.nodes().getMasterNode(), incomingClusterName);
    throw new IllegalStateException("received state from a node that is not part of the cluster");
  }
  if (lastState.nodes().getLocalNode().equals(incomingState.nodes().getLocalNode()) == false) {
    logger.warn("received a cluster state from [{}] and not part of the cluster, should not happen",
      incomingState.nodes().getMasterNode());
    throw new IllegalStateException("received state with a local node that does not match the current local node");
  }
  if (shouldIgnoreOrRejectNewClusterState(logger, lastState, incomingState)) {
    String message = String.format(
      Locale.ROOT,
      "rejecting cluster state version [%d] uuid [%s] received from [%s]",
      incomingState.version(),
      incomingState.stateUUID(),
      incomingState.nodes().getMasterNodeId()
    );
    logger.warn(message);
    throw new IllegalStateException(message);
  }
}

代码示例来源:origin: org.elasticsearch/elasticsearch

@Inject
public GatewayAllocator(ClusterService clusterService, RoutingService routingService,
            TransportNodesListGatewayStartedShards startedAction, TransportNodesListShardStoreMetaData storeAction) {
  this.routingService = routingService;
  this.primaryShardAllocator = new InternalPrimaryShardAllocator(startedAction);
  this.replicaShardAllocator = new InternalReplicaShardAllocator(storeAction);
  clusterService.addStateApplier(event -> {
    boolean cleanCache = false;
    DiscoveryNode localNode = event.state().nodes().getLocalNode();
    if (localNode != null) {
      if (localNode.isMasterNode() && event.localNodeMaster() == false) {
        cleanCache = true;
      }
    } else {
      cleanCache = true;
    }
    if (cleanCache) {
      Releasables.close(asyncFetchStarted.values());
      asyncFetchStarted.clear();
      Releasables.close(asyncFetchStore.values());
      asyncFetchStore.clear();
    }
  });
}

代码示例来源:origin: org.elasticsearch/elasticsearch

/**
 * Stores the task failure
 */
public <Response extends ActionResponse> void storeResult(Task task, Exception error, ActionListener<Response> listener) {
  DiscoveryNode localNode = lastDiscoveryNodes.getLocalNode();
  if (localNode == null) {
    // too early to store anything, shouldn't really be here - just pass the error along
    listener.onFailure(error);
    return;
  }
  final TaskResult taskResult;
  try {
    taskResult = task.result(localNode, error);
  } catch (IOException ex) {
    logger.warn(() -> new ParameterizedMessage("couldn't store error {}", ExceptionsHelper.detailedMessage(error)), ex);
    listener.onFailure(ex);
    return;
  }
  taskResultsService.storeResult(taskResult, new ActionListener<Void>() {
    @Override
    public void onResponse(Void aVoid) {
      listener.onFailure(error);
    }
    @Override
    public void onFailure(Exception e) {
      logger.warn(() -> new ParameterizedMessage("couldn't store error {}", ExceptionsHelper.detailedMessage(error)), e);
      listener.onFailure(e);
    }
  });
}

代码示例来源:origin: org.elasticsearch/elasticsearch

public void verify(String repository, boolean readOnly, String verificationToken, final ActionListener<VerifyResponse> listener) {
  final DiscoveryNodes discoNodes = clusterService.state().nodes();
  final DiscoveryNode localNode = discoNodes.getLocalNode();

代码示例来源:origin: org.elasticsearch/elasticsearch

private void createShard(DiscoveryNodes nodes, RoutingTable routingTable, ShardRouting shardRouting, ClusterState state) {
  assert shardRouting.initializing() : "only allow shard creation for initializing shard but was " + shardRouting;
  DiscoveryNode sourceNode = null;
  if (shardRouting.recoverySource().getType() == Type.PEER)  {
    sourceNode = findSourceNodeForPeerRecovery(logger, routingTable, nodes, shardRouting);
    if (sourceNode == null) {
      logger.trace("ignoring initializing shard {} - no source node can be found.", shardRouting.shardId());
      return;
    }
  }
  try {
    logger.debug("{} creating shard", shardRouting.shardId());
    RecoveryState recoveryState = new RecoveryState(shardRouting, nodes.getLocalNode(), sourceNode);
    indicesService.createShard(shardRouting, recoveryState, recoveryTargetService, new RecoveryListener(shardRouting),
      repositoriesService, failedShardHandler, globalCheckpointSyncer);
  } catch (Exception e) {
    failAndRemoveShard(shardRouting, true, "failed to create shard", e, state);
  }
}

代码示例来源:origin: org.elasticsearch/elasticsearch

@Override
public void applyClusterState(ClusterChangedEvent event) {
  lastDiscoveryNodes = event.state().getNodes();
  if (event.nodesRemoved()) {
    synchronized (banedParents) {
      lastDiscoveryNodes = event.state().getNodes();
      // Remove all bans that were registered by nodes that are no longer in the cluster state
      Iterator<TaskId> banIterator = banedParents.keySet().iterator();
      while (banIterator.hasNext()) {
        TaskId taskId = banIterator.next();
        if (lastDiscoveryNodes.nodeExists(taskId.getNodeId()) == false) {
          logger.debug("Removing ban for the parent [{}] on the node [{}], reason: the parent node is gone", taskId,
            event.state().getNodes().getLocalNode());
          banIterator.remove();
        }
      }
    }
    // Cancel cancellable tasks for the nodes that are gone
    for (Map.Entry<Long, CancellableTaskHolder> taskEntry : cancellableTasks.entrySet()) {
      CancellableTaskHolder holder = taskEntry.getValue();
      CancellableTask task = holder.getTask();
      TaskId parentTaskId = task.getParentTaskId();
      if (parentTaskId.isSet() && lastDiscoveryNodes.nodeExists(parentTaskId.getNodeId()) == false) {
        if (task.cancelOnParentLeaving()) {
          holder.cancel("Coordinating node [" + parentTaskId.getNodeId() + "] left the cluster");
        }
      }
    }
  }
}

代码示例来源:origin: org.elasticsearch/elasticsearch

membership.sendLeaveRequestBlocking(nodes.getMasterNode(), nodes.getLocalNode(), TimeValue.timeValueSeconds(1));
} catch (Exception e) {
  logger.debug(() -> new ParameterizedMessage("failed to send leave request to master [{}]", nodes.getMasterNode()), e);
  if (nodes.getLocalNode().equals(possibleMaster)) {
    continue;
    membership.sendLeaveRequest(nodes.getLocalNode(), possibleMaster);
  } catch (Exception e) {
    logger.debug(() -> new ParameterizedMessage("failed to send leave request from master [{}] to possible master [{}]",

代码示例来源:origin: org.elasticsearch/elasticsearch

ConnectionProfile.buildSingleChannelProfile(TransportRequestOptions.Type.REG, requestDuration, requestDuration);
final PingingRound pingingRound = new PingingRound(pingingRoundIdGenerator.incrementAndGet(), seedAddresses, resultsConsumer,
  nodes.getLocalNode(), connectionProfile);
activePingingRounds.put(pingingRound.id(), pingingRound);
final AbstractRunnable pingSender = new AbstractRunnable() {

代码示例来源:origin: org.elasticsearch/elasticsearch

if (clusterState.nodes().getLocalNode().isMasterNode() == false &&
    canDeleteIndexContents(shardId.getIndex(), indexSettings)) {
  if (nodeEnv.findAllShardIds(shardId.getIndex()).isEmpty()) {

代码示例来源:origin: org.elasticsearch/elasticsearch

request.bytes().length());
} else if (lastSeenClusterState != null) {
  Diff<ClusterState> diff = ClusterState.readDiffFrom(in, lastSeenClusterState.nodes().getLocalNode());
  incomingState = diff.apply(lastSeenClusterState);
  compatibleClusterStateDiffReceivedCount.incrementAndGet();

代码示例来源:origin: org.elasticsearch/elasticsearch

nodes = clusterChangedEvent.state().nodes();
nodesToPublishTo = new HashSet<>(nodes.getSize());
DiscoveryNode localNode = nodes.getLocalNode();
final int totalMasterNodes = nodes.getMasterNodes().size();
for (final DiscoveryNode node : nodes) {

代码示例来源:origin: org.elasticsearch/elasticsearch

/**
 * Deletes the index store trying to acquire all shards locks for this index.
 * This method will delete the metadata for the index even if the actual shards can't be locked.
 *
 * Package private for testing
 */
void deleteIndexStore(String reason, IndexMetaData metaData, ClusterState clusterState) throws IOException {
  if (nodeEnv.hasNodeFile()) {
    synchronized (this) {
      Index index = metaData.getIndex();
      if (hasIndex(index)) {
        String localUUid = indexService(index).indexUUID();
        throw new IllegalStateException("Can't delete index store for [" + index.getName() +
          "] - it's still part of the indices service [" + localUUid + "] [" + metaData.getIndexUUID() + "]");
      }
      if (clusterState.metaData().hasIndex(index.getName()) && (clusterState.nodes().getLocalNode().isMasterNode() == true)) {
        // we do not delete the store if it is a master eligible node and the index is still in the cluster state
        // because we want to keep the meta data for indices around even if no shards are left here
        final IndexMetaData idxMeta = clusterState.metaData().index(index.getName());
        throw new IllegalStateException("Can't delete index store for [" + index.getName() + "] - it's still part of the " +
                        "cluster state [" + idxMeta.getIndexUUID() + "] [" + metaData.getIndexUUID() + "], " +
                        "we are master eligible, so will keep the index metadata even if no shards are left.");
      }
    }
    final IndexSettings indexSettings = buildIndexSettings(metaData);
    deleteIndexStore(reason, indexSettings.getIndex(), indexSettings);
  }
}

相关文章

微信公众号

最新文章

更多