Primeros pasos con Hazelcast
En esta página
Instalación o configuración
Hazelcast se ejecuta dentro de una máquina virtual Java (JVM). Es compatible con las versiones de Java 1.6.x, 1.7.x y 1.8.x. La instalación y la configuración son tan simples como descargar el archivo zip (o tar), copiar el directorio sin comprimir en el directorio de instalación deseado y agregar el archivo jar a su classpath de Java.
Por ejemplo, después de descargar el zip de hazelcast desde https://hazelcast.org/download/, usando bash en Linux (en este ejemplo se usa Hazelcast 3.7.4, pero la versión que descargue puede ser diferente):
unzip hazelcast-3.7.4.zip
Configure la variable CLASSPATH:
export CLASSPATH=${CLASSPATH}:${PWD}:hazelcast-3.7.4/lib/hazelcast-3.7.4.jar
Ahora debería poder iniciar el servidor Hazelcast para verificar su instalación ejecutando el script de inicio. En Linux, ejecute el script start.sh. Ejemplo de secuencia de comandos y salida esperada:
$ hazelcast-3.7.4/bin/start.sh
JAVA_HOME environment variable not available.
Path to Java : /path/to/your/java
... ### More output here, ending with lines similar to: ### ...
Members [1] {
Member [192.168.38.1]:5701 - 3456f96d-3646-459b-9199-caa6ebb3e5ee this
}
Jan 07, 2017 8:30:53 PM com.hazelcast.core.LifecycleService
INFO: [192.168.XX.XX]:5701 [dev] [3.7.4] [192.168.38.1]:5701 is STARTED
Nota: si su instalación de Java no está en una ubicación estándar, es posible que también deba configurar la variable de entorno JAVA_HOME.
Ahora debería estar configurado para descargar y ejecutar los ejemplos de código (disponibles en http://download.hazelcast.com/code-samples/hazelcast-code-samples-3.7.4.zip), o para empezar a jugar escribiendo su propio cliente Java Hazelcast simple para conectarse al nodo del servidor Hazelcast que acaba de iniciar.
¡Hola Mundo!
Después de instalar Hazelcast y agregar a Java Build Path, puede escribir Main.class
que inicia el trabajo del clúster
public static void main(String[] args){
Config config = new Config();
// creates a new HazelcastInstance (a new node in a cluster)
HazelcastInstance instance = Hazelcast.newHazelcastInstance(config);
// returns the Cluster that this HazelcastInstance is part of
Cluster cluster = instance.getCluster();
// get all devices, that are in the cluster
Set<Member> setMembers = cluster.getMembers();
// get ExecutorService that works on cluster instance
ExecutorService mService = instance.getExecutorService("exec");
for (int i = 0; i < setMembers.size(); i++) {
// send a task for each member on service of HazelcastInstance
final Future<String> future = mService.submit(new ClusterWorkingTask());
String response = null;
try {
// wait for response
response = future.get();
System.out.println(response); // each member return: Hello World!
} catch (InterruptedException e) {
e.printStackTrace();
} catch (ExecutionException e) {
e.printStackTrace();
}
}
}
crear ClusterWorkingTask.class
que se puede ejecutar en cada miembro
public class ClusterWorkingTask implements Callable<String>, Serializable {
@Override
public String call() throws Exception {
// send Hello World! as result of execution
return "Hello World!";
}
}