gpt4 book ai didi

org.apache.gobblin.restli.throttling.ZookeeperLeaderElection类的使用及代码示例

转载 作者:知者 更新时间:2024-03-13 09:56:32 27 4
gpt4 key购买 nike

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

ZookeeperLeaderElection介绍

[英]A LeaderFinder using Zookeeper.
[中]使用Zookeeper的领队。

代码示例

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

private static Optional<LeaderFinder<URIMetadata>> getLeaderFinder(Config config) throws URISyntaxException,
                                             IOException {
 if (config.hasPath(ZK_STRING_KEY)) {
  Preconditions.checkArgument(config.hasPath(LISTENING_PORT), "Missing required config " + LISTENING_PORT);
  Preconditions.checkArgument(config.hasPath(HA_CLUSTER_NAME), "Missing required config " + HA_CLUSTER_NAME);
  int port = config.getInt(LISTENING_PORT);
  String hostname = config.hasPath(HOSTNAME) ? config.getString(HOSTNAME) : InetAddress.getLocalHost().getCanonicalHostName();
  String clusterName = config.getString(HA_CLUSTER_NAME);
  String zkString = config.getString(ZK_STRING_KEY);
  return Optional.<LeaderFinder<URIMetadata>>of(new ZookeeperLeaderElection<>(zkString, clusterName,
    new URIMetadata(new URI("http", null, hostname, port, null, null, null))));
 }
 return Optional.absent();
}

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

private void findLeader() {
 ReentrantReadWriteLock.WriteLock lock = this.readWriteLock.writeLock();
 lock.lock();
 try {
  if (this.zooKeeper.checkExists().usingWatcher(new FindLeaderWatcher()).forPath(this.leaderNode) == null) {
   determineLeadership();
  }
  byte[] leaderData = this.zooKeeper.getData().usingWatcher(new FindLeaderWatcher()).forPath(this.leaderNode);
  this.leaderMetadata = deserializeMetadata(leaderData);
 } catch (KeeperException exc) {
  reset();
 } catch (Throwable exc) {
   log.error("Fatal failure.", exc);
   this.fatalFailure = true;
 } finally {
  lock.unlock();
 }
}

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

private void determineLeadership() {
 ReentrantReadWriteLock.WriteLock lock = this.readWriteLock.writeLock();
 lock.lock();
 try {
  List<String> children = this.zooKeeper.getChildren().forPath(this.leaderElectionNode);
  Collections.sort(children);
  int idx = children.indexOf(this.nodeId);
  if (idx == 0) {
   Stat stat = this.zooKeeper.checkExists().forPath(this.leaderNode);
   if (stat == null) {
    this.zooKeeper.create().forPath(this.leaderNode, serializeMetadata(this.localMetadata));
   } else {
    this.zooKeeper.setData().forPath(this.leaderNode, serializeMetadata(this.localMetadata));
   }
   this.isLeader = true;
  } else {
   this.isLeader = false;
   String watchedNode = this.leaderElectionNode + "/" + children.get(idx - 1);
   this.zooKeeper.checkExists().usingWatcher(new DetermineLeadershipWatcher()).forPath(watchedNode);
  }
  findLeader();
 } catch (KeeperException exc) {
  reset();
 } catch (Throwable exc) {
  log.error("Fatal failure.", exc);
  this.fatalFailure = true;
 } finally {
  lock.unlock();
 }
}

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

@Override
protected void startUp() throws Exception {
 reset();
}

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

private void reset() {
 ReentrantReadWriteLock.WriteLock lock = this.readWriteLock.writeLock();
 lock.lock();
 try {
  if (this.zooKeeper != null) {
   this.zooKeeper.close();
  }
  this.zooKeeper = CuratorFrameworkFactory.builder().retryPolicy(new ExponentialBackoffRetry(100, 3))
    .connectString(this.zkConnectString).build();
  this.zooKeeper.start();
  if (!this.zooKeeper.blockUntilConnected(1, TimeUnit.SECONDS)) {
   throw new RuntimeException("Could not connect to Zookeeper.");
  }
  String nodePath = this.zooKeeper.create().creatingParentsIfNeeded().withMode(CreateMode.EPHEMERAL_SEQUENTIAL)
    .forPath(this.leaderElectionNode + "/p_");
  this.nodeId = nodePath.substring(nodePath.lastIndexOf("/") + 1);
  determineLeadership();
 } catch (Throwable exc) {
  throw new RuntimeException(exc);
 } finally {
  lock.unlock();
 }
}

代码示例来源:origin: org.apache.gobblin/gobblin-throttling-service-server

@Override
protected void startUp() throws Exception {
 reset();
}

代码示例来源:origin: org.apache.gobblin/gobblin-throttling-service-server

private void reset() {
 ReentrantReadWriteLock.WriteLock lock = this.readWriteLock.writeLock();
 lock.lock();
 try {
  if (this.zooKeeper != null) {
   this.zooKeeper.close();
  }
  this.zooKeeper = CuratorFrameworkFactory.builder().retryPolicy(new ExponentialBackoffRetry(100, 3))
    .connectString(this.zkConnectString).build();
  this.zooKeeper.start();
  if (!this.zooKeeper.blockUntilConnected(1, TimeUnit.SECONDS)) {
   throw new RuntimeException("Could not connect to Zookeeper.");
  }
  String nodePath = this.zooKeeper.create().creatingParentsIfNeeded().withMode(CreateMode.EPHEMERAL_SEQUENTIAL)
    .forPath(this.leaderElectionNode + "/p_");
  this.nodeId = nodePath.substring(nodePath.lastIndexOf("/") + 1);
  determineLeadership();
 } catch (Throwable exc) {
  throw new RuntimeException(exc);
 } finally {
  lock.unlock();
 }
}

代码示例来源:origin: org.apache.gobblin/gobblin-throttling-service-server

private void findLeader() {
 ReentrantReadWriteLock.WriteLock lock = this.readWriteLock.writeLock();
 lock.lock();
 try {
  if (this.zooKeeper.checkExists().usingWatcher(new FindLeaderWatcher()).forPath(this.leaderNode) == null) {
   determineLeadership();
  }
  byte[] leaderData = this.zooKeeper.getData().usingWatcher(new FindLeaderWatcher()).forPath(this.leaderNode);
  this.leaderMetadata = deserializeMetadata(leaderData);
 } catch (KeeperException exc) {
  reset();
 } catch (Throwable exc) {
   log.error("Fatal failure.", exc);
   this.fatalFailure = true;
 } finally {
  lock.unlock();
 }
}

代码示例来源:origin: org.apache.gobblin/gobblin-throttling-service-server

private void determineLeadership() {
 ReentrantReadWriteLock.WriteLock lock = this.readWriteLock.writeLock();
 lock.lock();
 try {
  List<String> children = this.zooKeeper.getChildren().forPath(this.leaderElectionNode);
  Collections.sort(children);
  int idx = children.indexOf(this.nodeId);
  if (idx == 0) {
   Stat stat = this.zooKeeper.checkExists().forPath(this.leaderNode);
   if (stat == null) {
    this.zooKeeper.create().forPath(this.leaderNode, serializeMetadata(this.localMetadata));
   } else {
    this.zooKeeper.setData().forPath(this.leaderNode, serializeMetadata(this.localMetadata));
   }
   this.isLeader = true;
  } else {
   this.isLeader = false;
   String watchedNode = this.leaderElectionNode + "/" + children.get(idx - 1);
   this.zooKeeper.checkExists().usingWatcher(new DetermineLeadershipWatcher()).forPath(watchedNode);
  }
  findLeader();
 } catch (KeeperException exc) {
  reset();
 } catch (Throwable exc) {
  log.error("Fatal failure.", exc);
  this.fatalFailure = true;
 } finally {
  lock.unlock();
 }
}

代码示例来源:origin: org.apache.gobblin/gobblin-throttling-service-server

private static Optional<LeaderFinder<URIMetadata>> getLeaderFinder(Config config) throws URISyntaxException,
                                             IOException {
 if (config.hasPath(ZK_STRING_KEY)) {
  Preconditions.checkArgument(config.hasPath(LISTENING_PORT), "Missing required config " + LISTENING_PORT);
  Preconditions.checkArgument(config.hasPath(HA_CLUSTER_NAME), "Missing required config " + HA_CLUSTER_NAME);
  int port = config.getInt(LISTENING_PORT);
  String hostname = config.hasPath(HOSTNAME) ? config.getString(HOSTNAME) : InetAddress.getLocalHost().getCanonicalHostName();
  String clusterName = config.getString(HA_CLUSTER_NAME);
  String zkString = config.getString(ZK_STRING_KEY);
  return Optional.<LeaderFinder<URIMetadata>>of(new ZookeeperLeaderElection<>(zkString, clusterName,
    new URIMetadata(new URI("http", null, hostname, port, null, null, null))));
 }
 return Optional.absent();
}

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com