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

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

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

DiscoveryNodes.getMasterNodeId介绍

[英]Get the id of the master node
[中]获取主节点的id

代码示例

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

private static String getMasterNodeId(ClusterState clusterState) {
  if (clusterState == null) {
    return null;
  }
  DiscoveryNodes nodes = clusterState.getNodes();
  if (nodes != null) {
    return nodes.getMasterNodeId();
  } else {
    return null;
  }
}

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

/**
 * a cluster state supersedes another state if they are from the same master and the version of this state is higher than that of the
 * other state.
 * <p>
 * In essence that means that all the changes from the other cluster state are also reflected by the current one
 */
public boolean supersedes(ClusterState other) {
  return this.nodes().getMasterNodeId() != null && this.nodes().getMasterNodeId().equals(other.nodes().getMasterNodeId())
    && this.version() > other.version();
}

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

/**
   * returns true if stored state is older then given state or they are from a different master, meaning they can't be compared
   * */
  public boolean isOlderOrDifferentMaster(ClusterState clusterState) {
    return version < clusterState.version() || Objects.equals(masterNodeId, clusterState.nodes().getMasterNodeId()) == false;
  }
}

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

StoredState(ClusterState clusterState) {
  this.masterNodeId = clusterState.nodes().getMasterNodeId();
  this.version = clusterState.version();
}

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

/**
 * In the case we follow an elected master the new cluster state needs to have the same elected master
 * This method checks for this and throws an exception if needed
 */
public static void validateStateIsFromCurrentMaster(Logger logger, DiscoveryNodes currentNodes, ClusterState newClusterState) {
  if (currentNodes.getMasterNodeId() == null) {
    return;
  }
  if (!currentNodes.getMasterNodeId().equals(newClusterState.nodes().getMasterNodeId())) {
    logger.warn("received a cluster state from a different master than the current one, rejecting (received {}, current {})",
      newClusterState.nodes().getMasterNode(), currentNodes.getMasterNode());
    throw new IllegalStateException("cluster state from a different master than the current one, rejecting (received " +
      newClusterState.nodes().getMasterNode() + ", current " + currentNodes.getMasterNode() + ")");
  }
}

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

@Override
  public String toString() {
    return String.format(
        Locale.ROOT,
        "[uuid[%s], v[%d], m[%s]]",
        stateUUID(),
        state.version(),
        state.nodes().getMasterNodeId()
    );
  }
}

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

public Builder(DiscoveryNodes nodes) {
  this.masterNodeId = nodes.getMasterNodeId();
  this.localNodeId = nodes.getLocalNodeId();
  this.nodes = ImmutableOpenMap.builder(nodes.getNodes());
}

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

@Override
public void clusterChanged(ClusterChangedEvent event) {
  try {
    SnapshotsInProgress previousSnapshots = event.previousState().custom(SnapshotsInProgress.TYPE);
    SnapshotsInProgress currentSnapshots = event.state().custom(SnapshotsInProgress.TYPE);
    if ((previousSnapshots == null && currentSnapshots != null)
      || (previousSnapshots != null && previousSnapshots.equals(currentSnapshots) == false)) {
      processIndexShardSnapshots(event);
    }
    String previousMasterNodeId = event.previousState().nodes().getMasterNodeId();
    String currentMasterNodeId = event.state().nodes().getMasterNodeId();
    if (currentMasterNodeId != null && currentMasterNodeId.equals(previousMasterNodeId) == false) {
      syncShardStatsOnNewMaster(event);
    }
  } catch (Exception e) {
    logger.warn("Failed to update snapshot state ", e);
  }
}

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

/**
 * In the case we follow an elected master the new cluster state needs to have the same elected master and
 * the new cluster state version needs to be equal or higher than our cluster state version.
 * If the first condition fails we reject the cluster state and throw an error.
 * If the second condition fails we ignore the cluster state.
 */
public static boolean shouldIgnoreOrRejectNewClusterState(Logger logger, ClusterState currentState, ClusterState newClusterState) {
  validateStateIsFromCurrentMaster(logger, currentState.nodes(), newClusterState);
  // reject cluster states that are not new from the same master
  if (currentState.supersedes(newClusterState) ||
      (newClusterState.nodes().getMasterNodeId().equals(currentState.nodes().getMasterNodeId()) &&
        currentState.version() == newClusterState.version())) {
    // if the new state has a smaller version, and it has the same master node, then no need to process it
    logger.debug("received a cluster state that is not newer than the current one, ignoring (received {}, current {})",
      newClusterState.version(), currentState.version());
    return true;
  }
  // reject older cluster states if we are following a master
  if (currentState.nodes().getMasterNodeId() != null && newClusterState.version() < currentState.version()) {
    logger.debug("received a cluster state that has a lower version than the current one, ignoring (received {}, current {})",
      newClusterState.version(), currentState.version());
    return true;
  }
  return false;
}

代码示例来源: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

builder.field("master_node", nodes().getMasterNodeId());

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

String masterNodeId = getMasterNodeId();
if (masterNodeId != null) {
  resolvedNodesIds.add(masterNodeId);

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

protected void rejoin(String reason) {
  assert Thread.holdsLock(stateMutex);
  ClusterState clusterState = committedState.get();
  logger.warn("{}, current nodes: {}", reason, clusterState.nodes());
  nodesFD.stop();
  masterFD.stop(reason);
  // TODO: do we want to force a new thread if we actively removed the master? this is to give a full pinging cycle
  // before a decision is made.
  joinThreadControl.startNewThreadIfNotRunning();
  if (clusterState.nodes().getMasterNodeId() != null) {
    // remove block if it already exists before adding new one
    assert clusterState.blocks().hasGlobalBlock(discoverySettings.getNoMasterBlock().id()) == false :
      "NO_MASTER_BLOCK should only be added by ZenDiscovery";
    ClusterBlocks clusterBlocks = ClusterBlocks.builder().blocks(clusterState.blocks())
      .addGlobalBlock(discoverySettings.getNoMasterBlock())
      .build();
    DiscoveryNodes discoveryNodes = new DiscoveryNodes.Builder(clusterState.nodes()).masterNodeId(null).build();
    clusterState = ClusterState.builder(clusterState)
      .blocks(clusterBlocks)
      .nodes(discoveryNodes)
      .build();
    committedState.set(clusterState);
    clusterApplier.onNewClusterState(reason, this::clusterState, (source, e) -> {}); // don't wait for state to be applied
  }
}

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

newClusterState.version(),
    newClusterState.stateUUID(),
    newClusterState.nodes().getMasterNodeId()
  );
  throw new IllegalStateException(message);
logger.debug("got first state from fresh master [{}]", newClusterState.nodes().getMasterNodeId());

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

private ClusterState.Builder becomeMasterAndTrimConflictingNodes(ClusterState currentState, List<DiscoveryNode> joiningNodes) {
  assert currentState.nodes().getMasterNodeId() == null : currentState;
  DiscoveryNodes currentNodes = currentState.nodes();
  DiscoveryNodes.Builder nodesBuilder = DiscoveryNodes.builder(currentNodes);
  nodesBuilder.masterNodeId(currentState.nodes().getLocalNodeId());
  for (final DiscoveryNode joiningNode : joiningNodes) {
    final DiscoveryNode nodeWithSameId = nodesBuilder.get(joiningNode.getId());
    if (nodeWithSameId != null && nodeWithSameId.equals(joiningNode) == false) {
      logger.debug("removing existing node [{}], which conflicts with incoming join from [{}]", nodeWithSameId, joiningNode);
      nodesBuilder.remove(nodeWithSameId.getId());
    }
    final DiscoveryNode nodeWithSameAddress = currentNodes.findByAddress(joiningNode.getAddress());
    if (nodeWithSameAddress != null && nodeWithSameAddress.equals(joiningNode) == false) {
      logger.debug("removing existing node [{}], which conflicts with incoming join from [{}]", nodeWithSameAddress,
        joiningNode);
      nodesBuilder.remove(nodeWithSameAddress.getId());
    }
  }
  // now trim any left over dead nodes - either left there when the previous master stepped down
  // or removed by us above
  ClusterState tmpState = ClusterState.builder(currentState).nodes(nodesBuilder).blocks(ClusterBlocks.builder()
    .blocks(currentState.blocks())
    .removeGlobalBlock(DiscoverySettings.NO_MASTER_BLOCK_ID)).build();
  return ClusterState.builder(allocationService.deassociateDeadNodes(tmpState, false,
    "removed dead nodes on election"));
}

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

if (state.nodes().getMasterNodeId() == null) {
  logger.debug("not recovering from gateway, no master elected yet");
} else if (recoverAfterNodes != -1 && (nodes.getMasterAndDataNodes().size()) < recoverAfterNodes) {

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

ClusterState clusterState = clusterService.state();
ClusterStateObserver observer = new ClusterStateObserver(clusterState, clusterService, null, logger, thread.getThreadContext());
if (clusterState.nodes().getMasterNodeId() == null) {
  logger.debug("waiting to join the cluster. timeout [{}]", initialStateTimeout);
  final CountDownLatch latch = new CountDownLatch(1);
      latch.countDown();
  }, state -> state.nodes().getMasterNodeId() != null, initialStateTimeout);

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

private Table buildTable(RestRequest request, ClusterStateResponse state) {
    Table table = getTableWithHeader(request);
    DiscoveryNodes nodes = state.getState().nodes();

    table.startRow();
    DiscoveryNode master = nodes.get(nodes.getMasterNodeId());
    if (master == null) {
      table.addCell("-");
      table.addCell("-");
      table.addCell("-");
      table.addCell("-");
    } else {
      table.addCell(master.getId());
      table.addCell(master.getHostName());
      table.addCell(master.getHostAddress());
      table.addCell(master.getName());
    }
    table.endRow();

    return table;
  }
}

代码示例来源:origin: com.strapdata.elasticsearch/elasticsearch

@Override
  public String toString() {
    return String.format(
        Locale.ROOT,
        "[uuid[%s], v[%d], m[%s]]",
        stateUUID(),
        state.version(),
        state.nodes().getMasterNodeId()
    );
  }
}

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

String masterId = nodes.getMasterNodeId();
Table table = getTableWithHeader(req);

相关文章

微信公众号

最新文章

更多