@Override public DruidNodeDiscovery getForNodeType(NodeType nodeType) { Preconditions.checkState(lifecycleLock.awaitStarted(1, TimeUnit.MILLISECONDS)); return nodeTypeWatchers.computeIfAbsent( nodeType, nType -> { log.info("Creating NodeTypeWatcher for nodeType [%s].", nType); NodeTypeWatcher nodeTypeWatcher = new NodeTypeWatcher( listenerExecutor, curatorFramework, config.getInternalDiscoveryPath(), jsonMapper, nType ); nodeTypeWatcher.start(); log.info("Created NodeTypeWatcher for nodeType [%s].", nType); return nodeTypeWatcher; } ); }
@Override public void announce(DiscoveryDruidNode discoveryDruidNode) { try { log.info("Announcing [%s].", discoveryDruidNode); String path = ZKPaths.makePath( config.getInternalDiscoveryPath(), discoveryDruidNode.getNodeType().toString(), discoveryDruidNode.getDruidNode().getHostAndPortToUse() ); announcer.announce(path, jsonMapper.writeValueAsBytes(discoveryDruidNode)); log.info("Announced [%s].", discoveryDruidNode); } catch (JsonProcessingException e) { throw Throwables.propagate(e); } }
@Override public void unannounce(DiscoveryDruidNode discoveryDruidNode) { log.info("Unannouncing [%s].", discoveryDruidNode); String path = ZKPaths.makePath( config.getInternalDiscoveryPath(), discoveryDruidNode.getNodeType().toString(), discoveryDruidNode.getDruidNode().getHostAndPortToUse() ); announcer.unannounce(path); log.info("Unannounced [%s].", discoveryDruidNode); } }
@Override public DruidNodeDiscovery getForNodeType(String nodeType) { Preconditions.checkState(lifecycleLock.awaitStarted(1, TimeUnit.MILLISECONDS)); return nodeTypeWatchers.compute( nodeType, (k, v) -> { if (v != null) { return v; } log.info("Creating NodeTypeWatcher for nodeType [%s].", nodeType); NodeTypeWatcher nodeTypeWatcher = new NodeTypeWatcher( listenerExecutor, curatorFramework, config.getInternalDiscoveryPath(), jsonMapper, nodeType ); nodeTypeWatcher.start(); log.info("Created NodeTypeWatcher for nodeType [%s].", nodeType); return nodeTypeWatcher; } ); }
@Override public void announce(DiscoveryDruidNode discoveryDruidNode) { try { log.info("Announcing [%s].", discoveryDruidNode); announcer.announce( ZKPaths.makePath( config.getInternalDiscoveryPath(), discoveryDruidNode.getNodeType(), discoveryDruidNode.getDruidNode().getHostAndPortToUse() ), jsonMapper.writeValueAsBytes(discoveryDruidNode) ); log.info("Announced [%s].", discoveryDruidNode); } catch (JsonProcessingException e) { throw Throwables.propagate(e); } }
@Override public void unannounce(DiscoveryDruidNode discoveryDruidNode) { log.info("Unannouncing [%s].", discoveryDruidNode); announcer.unannounce( ZKPaths.makePath( config.getInternalDiscoveryPath(), discoveryDruidNode.getNodeType(), discoveryDruidNode.getDruidNode().getHostAndPortToUse() ) ); log.info("Unannounced [%s].", discoveryDruidNode); } }