本文整理了Java中org.apache.gobblin.restli.throttling.ZookeeperLeaderElection
类的一些代码示例,展示了ZookeeperLeaderElection
类的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。ZookeeperLeaderElection
类的具体详情如下:
包路径:org.apache.gobblin.restli.throttling.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();
}
内容来源于网络,如有侵权,请联系作者删除!