/** Initializes this IP Finder by creating the appropriate Curator objects. */ private void init() { if (!initGuard.compareAndSet(false, true)) return; String sysPropZkConnString = System.getProperty(PROP_ZK_CONNECTION_STRING); if (sysPropZkConnString != null && !sysPropZkConnString.trim().isEmpty()) zkConnectionString = sysPropZkConnString; if (log.isInfoEnabled()) log.info("Initializing ZooKeeper IP Finder."); if (curator == null) { A.notNullOrEmpty(zkConnectionString, String.format("ZooKeeper URL (or system property %s) cannot be null " + "or empty if a CuratorFramework object is not provided explicitly", PROP_ZK_CONNECTION_STRING)); curator = CuratorFrameworkFactory.newClient(zkConnectionString, retryPolicy); } if (curator.getState() == CuratorFrameworkState.LATENT) curator.start(); A.ensure(curator.getState() == CuratorFrameworkState.STARTED, "CuratorFramework can't be started."); discovery = ServiceDiscoveryBuilder.builder(IgniteInstanceDetails.class) .client(curator) .basePath(basePath) .serializer(new JsonInstanceSerializer<>(IgniteInstanceDetails.class)) .build(); }
LOG.error("Unable to create path: " + e.getMessage(), e); JsonInstanceSerializer<ModelEndpoint> serializer = new JsonInstanceSerializer<>(ModelEndpoint.class); serviceDiscovery = ServiceDiscoveryBuilder.builder(ModelEndpoint.class) .client(client)
client.start(); MaaSConfig config = ConfigUtil.INSTANCE.read(client, zkRoot, new MaaSConfig(), MaaSConfig.class); JsonInstanceSerializer<ModelEndpoint> serializer = new JsonInstanceSerializer<>(ModelEndpoint.class); try { serviceDiscovery = ServiceDiscoveryBuilder.builder(ModelEndpoint.class)
@Bean @ConditionalOnMissingBean public InstanceSerializer<ZookeeperInstance> deprecatedInstanceSerializer() { return new JsonInstanceSerializer<>(ZookeeperInstance.class); }
@Bean @ConditionalOnMissingBean public InstanceSerializer<ZookeeperInstance> instanceSerializer() { return new JsonInstanceSerializer<>(ZookeeperInstance.class); }
/** * Build a new service discovery with the currently set values. If not set, the builder will be * defaulted with a {@link JsonInstanceSerializer}. * * @return new service discovery */ public ServiceDiscovery<T> build() { if ( serializer == null ) { serializer(new JsonInstanceSerializer<T>(payloadClass)); } return new ServiceDiscoveryImpl<T>(client, basePath, serializer, thisInstance, watchInstances); }
public ServiceDiscovery<T> build() { if (serializer == null) { serializer(new JsonInstanceSerializer<T>(payloadClass)); } return new ServiceDiscoveryEtcdImpl<T>(client, basePath, serializer, thisInstance); }
ZooRegistry() { String connectString = RPCServer.getConfig().getString("zookeeper.connectString"); basePath = RPCServer.getConfig().getString("zookeeper.basePath"); client = CuratorFrameworkFactory.newClient(connectString, new ExponentialBackoffRetry(1000, 3)); client.start(); JsonInstanceSerializer<InstanceDetails> serializer = new JsonInstanceSerializer<InstanceDetails>(InstanceDetails.class); serviceDiscovery = ServiceDiscoveryBuilder.builder(InstanceDetails.class).client(client).basePath(basePath).serializer(serializer).build(); try { serviceDiscovery.start(); } catch (Exception e) { logger.error("Failed to create ZooRegistry!msg="+e.getMessage(), e); } }
@Bean(initMethod = "start", destroyMethod = "close") public ServiceDiscovery curatorServiceDiscovery( CuratorFramework curatorFramework, @Value("${curator.discovery.basePath:/homeadvisor/services}") String basePath) throws Exception { final Class payloadClass = Object.class; curatorFramework.createContainers(basePath); return ServiceDiscoveryBuilder.builder(payloadClass) .client(curatorFramework) .basePath(basePath) .serializer(new JsonInstanceSerializer(payloadClass)) .build(); }
public ZookeeperComponentRegistry(ComponentConfiguration config) { super(config); if (componentConfig.getExternalConnectionString() == null) { componentConfig.setExternalConnectionString(defaultConnectionString); LOGGER.warn("External connection string not provided. Defaulting to " + defaultConnectionString); } client = CuratorFrameworkFactory.newClient(componentConfig.getExternalConnectionString(), new ExponentialBackoffRetry(1000, 3)); JsonInstanceSerializer<ComponentInfo> serializer = new JsonInstanceSerializer<ComponentInfo>(ComponentInfo.class, false); serviceDiscovery = ServiceDiscoveryBuilder.builder(ComponentInfo.class).client(client).basePath(PATH).serializer(serializer).build(); }
/** * Build a new getGroup discovery with the currently set values. If not set, the builder will be * defaulted with a {@link JsonInstanceSerializer}. * * @return new getGroup discovery */ public ServiceDiscovery<T> build() { if ( serializer == null ) { serializer(new JsonInstanceSerializer<T>(payloadClass)); } if ( serviceDefinitionSerializer == null) { serializer(new FastjsonServiceDefinitionSerializer<>(payloadClass)); } return new ServiceDiscoveryImpl<T>(client, basePath, serializer, serviceDefinitionSerializer, thisInstance, watchInstances); }
public static <T> ServiceDiscovery<T> createServiceDiscovery(ZooKeeperCuratorConfiguration configuration, CuratorFramework curator, Class<T> payloadType) { return ServiceDiscoveryBuilder.builder(payloadType) .client(curator) .basePath(configuration.getBasePath()) .serializer(new JsonInstanceSerializer<>(payloadType)) .build(); } }
public static void main(String[] args) throws Exception { // This method is scaffolding to get the example up and running TestingServer server = new TestingServer(); CuratorFramework client = null; ServiceDiscovery<InstanceDetails> serviceDiscovery = null; Map<String, ServiceProvider<InstanceDetails>> providers = Maps.newHashMap(); try { client = CuratorFrameworkFactory.newClient(server.getConnectString(), new ExponentialBackoffRetry(1000, 3)); client.start(); JsonInstanceSerializer<InstanceDetails> serializer = new JsonInstanceSerializer<InstanceDetails>(InstanceDetails.class); serviceDiscovery = ServiceDiscoveryBuilder.builder(InstanceDetails.class).client(client).basePath(PATH).serializer(serializer).build(); serviceDiscovery.start(); processCommands(serviceDiscovery, providers, client); } finally { for (ServiceProvider<InstanceDetails> cache : providers.values()) { CloseableUtils.closeQuietly(cache); } CloseableUtils.closeQuietly(serviceDiscovery); CloseableUtils.closeQuietly(client); CloseableUtils.closeQuietly(server); } }
public static void main(String[] args) throws Exception { // This method is scaffolding to get the example up and running TestingServer server = new TestingServer(); CuratorFramework client = null; ServiceDiscovery<InstanceDetails> serviceDiscovery = null; Map<String, ServiceProvider<InstanceDetails>> providers = Maps.newHashMap(); try { client = CuratorFrameworkFactory.newClient(server.getConnectString(), new ExponentialBackoffRetry(1000, 3)); client.start(); JsonInstanceSerializer<InstanceDetails> serializer = new JsonInstanceSerializer<InstanceDetails>(InstanceDetails.class); serviceDiscovery = ServiceDiscoveryBuilder.builder(InstanceDetails.class).client(client).basePath(PATH).serializer(serializer).build(); serviceDiscovery.start(); processCommands(serviceDiscovery, providers, client); } finally { for ( ServiceProvider<InstanceDetails> cache : providers.values() ) { CloseableUtils.closeQuietly(cache); } CloseableUtils.closeQuietly(serviceDiscovery); CloseableUtils.closeQuietly(client); CloseableUtils.closeQuietly(server); } }
public ZookeeperComponentRegistryObserver(ComponentConfiguration config) { super(config); String connectionString = defaultConnectionString; if (componentConfig.getExternalConnectionString() != null) { connectionString = componentConfig.getExternalConnectionString(); } client = CuratorFrameworkFactory.newClient(connectionString, new ExponentialBackoffRetry(1000, 3)); serializer = new JsonInstanceSerializer<ComponentInfo>(ComponentInfo.class); managementCache = new PathChildrenCache(client, PATH + "/" + ComponentCategory.MANAGEMENT_COMPONENT.getName(), true); managementCache.getListenable().addListener(this); serviceCache = new PathChildrenCache(client, PATH + "/" + ComponentCategory.SERVICE_COMPONENT.getName(), true); serviceCache.getListenable().addListener(this); deviceCache = new PathChildrenCache(client, PATH + "/" + ComponentCategory.DEVICE_COMPONENT.getName(), true); deviceCache.getListenable().addListener(this); }
/** * Gets the discovery. * * @param basePath - Registration path * @param curatorFramework - Curator * @return the ServiceProvider * @throws Exception the exception */ protected static ServiceProvider<MetaData> getServiceProvider(CuratorFramework curatorFramework, String basePath, String serviceName) throws Exception { new EnsurePath(basePath).ensure(curatorFramework.getZookeeperClient()); JsonInstanceSerializer<MetaData> serializer = new JsonInstanceSerializer<MetaData>(MetaData.class); // Payload Serializer ServiceDiscovery<MetaData> serviceDiscovery = getServiceDiscovery(curatorFramework, basePath); ServiceProvider<MetaData> serviceProvider = serviceDiscovery.serviceProviderBuilder().serviceName(serviceName).build(); // Service Provider for a particular service serviceProvider.start(); return serviceProvider; } }
/** * Gets the discovery. * * @param basePath - Registration path * @param curatorFramework - Curator * @return the discovery * @throws Exception the exception */ protected static ServiceDiscovery<MetaData> getServiceDiscovery(CuratorFramework curatorFramework, String basePath) throws Exception { new EnsurePath(basePath).ensure(curatorFramework.getZookeeperClient()); JsonInstanceSerializer<MetaData> serializer = new JsonInstanceSerializer<MetaData>(MetaData.class); // Payload Serializer ServiceDiscovery<MetaData> serviceDiscovery = ServiceDiscoveryBuilder.builder(MetaData.class).client(curatorFramework).basePath(basePath).serializer(serializer).build(); // Service Discovery serviceDiscovery.start(); return serviceDiscovery; }
/** * Gets the discovery. * * @param basePath - Registration path * @param curatorFramework - Curator * @return the ServiceCacheBuilder * @throws Exception the exception */ protected static ServiceDiscovery<MetaData> getServiceCacheBuilder(CuratorFramework curatorFramework, String basePath) throws Exception { new EnsurePath(basePath).ensure(curatorFramework.getZookeeperClient()); JsonInstanceSerializer<MetaData> serializer = new JsonInstanceSerializer<MetaData>(MetaData.class); // Payload Serializer ServiceDiscovery<MetaData> serviceDiscovery = ServiceDiscoveryBuilder.builder(MetaData.class).client(curatorFramework).basePath(basePath).serializer(serializer).build(); // Service Discovery serviceDiscovery.start(); return serviceDiscovery; }
public ExampleServer(CuratorFramework client, String path, String serviceName, String description) throws Exception { // in a real application, you'd have a convention of some kind for the // URI layout UriSpec uriSpec = new UriSpec("{scheme}://foo.com:{port}"); thisInstance = ServiceInstance.<InstanceDetails> builder().name(serviceName).payload(new InstanceDetails(description)) .port((int) (65535 * Math.random())) // in a real application, // you'd use a common // port .uriSpec(uriSpec).build(); // if you mark your payload class with @JsonRootName the provided // JsonInstanceSerializer will work JsonInstanceSerializer<InstanceDetails> serializer = new JsonInstanceSerializer<InstanceDetails>(InstanceDetails.class); serviceDiscovery = ServiceDiscoveryBuilder.builder(InstanceDetails.class).client(client).basePath(path).serializer(serializer) .thisInstance(thisInstance).build(); }
public ExampleServer(CuratorFramework client, String path, String serviceName, String description) throws Exception { // in a real application, you'd have a convention of some kind for the URI layout UriSpec uriSpec = new UriSpec("{scheme}://foo.com:{port}"); thisInstance = ServiceInstance.<InstanceDetails>builder() .name(serviceName) .payload(new InstanceDetails(description)) .port((int)(65535 * Math.random())) // in a real application, you'd use a common port .uriSpec(uriSpec) .build(); // if you mark your payload class with @JsonRootName the provided JsonInstanceSerializer will work JsonInstanceSerializer<InstanceDetails> serializer = new JsonInstanceSerializer<InstanceDetails>(InstanceDetails.class); serviceDiscovery = ServiceDiscoveryBuilder.builder(InstanceDetails.class) .client(client) .basePath(path) .serializer(serializer) .thisInstance(thisInstance) .build(); }