From 4f5d9310a3e0368834d153d67af9c0dcea3bd206 Mon Sep 17 00:00:00 2001 From: Daniel Smith Date: Tue, 26 May 2015 17:31:42 -0700 Subject: [PATCH] replace wrong code with link --- examples/hazelcast/README.md | 130 +---------------------------------- 1 file changed, 1 insertion(+), 129 deletions(-) diff --git a/examples/hazelcast/README.md b/examples/hazelcast/README.md index d6d752914e..09c015eaa5 100644 --- a/examples/hazelcast/README.md +++ b/examples/hazelcast/README.md @@ -201,134 +201,6 @@ kubectl resize rc hazelcast --replicas=4 ### Hazelcast Discovery Source -```java -package com.github.pires.hazelcast; - -import com.fasterxml.jackson.annotation.JsonIgnoreProperties; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.hazelcast.config.Config; -import com.hazelcast.config.GroupConfig; -import com.hazelcast.config.JoinConfig; -import com.hazelcast.config.MulticastConfig; -import com.hazelcast.config.NetworkConfig; -import com.hazelcast.config.SSLConfig; -import com.hazelcast.config.TcpIpConfig; -import com.hazelcast.core.Hazelcast; -import java.io.IOException; -import java.net.URL; -import java.util.List; -import java.util.UUID; -import java.util.concurrent.CopyOnWriteArrayList; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.boot.CommandLineRunner; -import org.springframework.stereotype.Controller; - -/** - * Read from Kubernetes API all Hazelcast service bound pods, get their IP and connect to them. - */ -@Controller -public class HazelcastDiscoveryController implements CommandLineRunner { - - private static final Logger log = LoggerFactory.getLogger( - HazelcastDiscoveryController.class); - - @JsonIgnoreProperties(ignoreUnknown = true) - static class Address { - - public String IP; - } - - @JsonIgnoreProperties(ignoreUnknown = true) - static class Subset { - - public List
addresses; - } - - @JsonIgnoreProperties(ignoreUnknown = true) - static class Endpoints { - - public List subsets; - } - - private static String getEnvOrDefault(String var, String def) { - final String val = System.getenv(var); - return (val == null || val.isEmpty()) - ? def - : val; - } - - @Override - public void run(String... args) { - final String hostName = getEnvOrDefault("KUBERNETES_RO_SERVICE_HOST", - "localhost"); - final String hostPort = getEnvOrDefault("KUBERNETES_RO_SERVICE_PORT", - "8080"); - String serviceName = getEnvOrDefault("HAZELCAST_SERVICE", "hazelcast"); - String path = "/api/v1beta3/namespaces/default/endpoints/"; - final String host = "http://" + hostName + ":" + hostPort; - log.info("Asking k8s registry at {}..", host); - - final List hazelcastEndpoints = new CopyOnWriteArrayList<>(); - - try { - URL url = new URL(host + path + serviceName); - ObjectMapper mapper = new ObjectMapper(); - Endpoints endpoints = mapper.readValue(url, Endpoints.class); - if (endpoints != null) { - if (endpoints.subsets != null && !endpoints.subsets.isEmpty()) { - endpoints.subsets.parallelStream().forEach(subset -> { - subset.addresses.parallelStream().forEach( - addr -> hazelcastEndpoints.add(addr.IP)); - }); - } - } - } catch (IOException ex) { - log.warn("Request to Kubernetes API failed", ex); - } - - log.info("Found {} pods running Hazelcast.", hazelcastEndpoints.size()); - - runHazelcast(hazelcastEndpoints); - } - - private void runHazelcast(final List nodes) { - // configure Hazelcast instance - final Config cfg = new Config(); - cfg.setInstanceName(UUID.randomUUID().toString()); - // group configuration - final String HC_GROUP_NAME = getEnvOrDefault("HC_GROUP_NAME", "someGroup"); - final String HC_GROUP_PASSWORD = getEnvOrDefault("HC_GROUP_PASSWORD", - "someSecret"); - final int HC_PORT = Integer.parseInt(getEnvOrDefault("HC_PORT", "5701")); - cfg.setGroupConfig(new GroupConfig(HC_GROUP_NAME, HC_GROUP_PASSWORD)); - // network configuration initialization - final NetworkConfig netCfg = new NetworkConfig(); - netCfg.setPortAutoIncrement(false); - netCfg.setPort(HC_PORT); - // multicast - final MulticastConfig mcCfg = new MulticastConfig(); - mcCfg.setEnabled(false); - // tcp - final TcpIpConfig tcpCfg = new TcpIpConfig(); - nodes.parallelStream().forEach(tcpCfg::addMember); - tcpCfg.setEnabled(true); - // network join configuration - final JoinConfig joinCfg = new JoinConfig(); - joinCfg.setMulticastConfig(mcCfg); - joinCfg.setTcpIpConfig(tcpCfg); - netCfg.setJoin(joinCfg); - // ssl - netCfg.setSSLConfig(new SSLConfig().setEnabled(false)); - // set it all - cfg.setNetworkConfig(netCfg); - // run - Hazelcast.newHazelcastInstance(cfg); - } - -} - -``` - +See [here](https://github.com/pires/hazelcast-kubernetes-bootstrapper/blob/master/src/main/java/com/github/pires/hazelcast/HazelcastDiscoveryController.java) [![Analytics](https://kubernetes-site.appspot.com/UA-36037335-10/GitHub/examples/hazelcast/README.md?pixel)]()