An Introduction To Hazelcast - Baeldung
An Introduction To Hazelcast - Baeldung
(/)
by baeldung (https://www.baeldung.com/author/baeldung/)
Data (https://www.baeldung.com/category/data/)
1. Overview
This is an introductory article on Hazelcast where we'll see how to create a
cluster member, a distributed Map to share data among the cluster nodes, and
create a Java client to connect and query data in the cluster.
2. What Is Hazelcast?
Hazelcast is a distributed In-Memory Data Grid platform for Java. The
architecture supports high scalability and data distribution in a clustered
environment. It supports the auto-discovery of nodes and intelligent
synchronization.
Hazelcast is available in di erent editions
(http://docs.hazelcast.org/docs/latest/manual/html-
single/index.html#hazelcast-editions.). To see the features for all Hazelcast
editions we can refer to the following link (https://hazelcast.org/imdg/imdg-
features/). In this tutorial, we'll use the open-source edition.
https://www.baeldung.com/java-hazelcast 1/9
10/3/2021 An Introduction to Hazelcast | Baeldung
3. Maven Dependency
Hazelcast o ers many di erent libraries to deal with various requirements. We
can nd them under com.hazelcast
(https://search.maven.org/classic/#search%7Cga%7C1%7Cg%3A%22com.haze
lcast%22) group in Maven Central.
However, in this article, we'll only use the core dependency needed to create
a standalone Hazelcast cluster member and the Hazelcast Java Client:
<dependency>
<groupId>com.hazelcast</groupId>
<artifactId>hazelcast</artifactId>
<version>4.0.2</version>
</dependency>
https://www.baeldung.com/java-hazelcast 2/9
10/3/2021 An Introduction to Hazelcast | Baeldung
When we start the ServerNode application, we can see the owing text in the
console which means that we create a new Hazelcast node in our JVM which
will have to join the cluster.
Members [1] {
Member [192.168.1.105]:5701 - 899898be-b8aa-49aa-8d28-40917ccba56c
this
}
Members [2] {
Member [192.168.1.105]:5701 - 899898be-b8aa-49aa-8d28-40917ccba56c
Member [192.168.1.105]:5702 - d6b81800-2c78-4055-8a5f-7f5b65d49f30 this
}
https://www.baeldung.com/java-hazelcast 3/9
10/3/2021 An Introduction to Hazelcast | Baeldung
FlakeIdGenerator idGenerator =
hazelcastInstance.getFlakeIdGenerator("newid");
for (int i = 0; i < 10; i++) {
map.put(idGenerator.newId(), "message" + i);
}
https://www.baeldung.com/java-hazelcast 4/9
10/3/2021 An Introduction to Hazelcast | Baeldung
Next, we'll use the instance of HazelcastInstance created earlier to access the
distributed Map:
https://www.baeldung.com/java-hazelcast 5/9
10/3/2021 An Introduction to Hazelcast | Baeldung
http://www.hazelcast.com/schema/config/hazelcast-config-4.0.xsd";
<network>
<port auto-increment="true" port-count="20">5701</port>
<join>
<multicast enabled="false"/>
<tcp-ip enabled="true">
<member>machine1</member>
<member>localhost</member>
</tcp-ip>
</join>
</network>
</hazelcast>
By default, Hazelcast will try 100 ports to bind. In the example above, if we set
the value of port as 5701 and limit the port count to 20, as members are joining
the cluster, Hazelcast tries to nd ports between 5701 and 5721.
If we want to choose to use only one port, we can disable the auto-increment
feature by setting auto-increment to false.
https://www.baeldung.com/java-hazelcast 6/9
10/3/2021 An Introduction to Hazelcast | Baeldung
<management-center enabled="true">
http://localhost:8080/mancenter
</management-center>
6. Conclusion
In this article, we covered introductory concepts about Hazelcast. For more
details, we can take a look at the Reference Manual
(http://docs.hazelcast.org/docs/3.7/manual/html-single/index.html).
As usual, all the code for this article is available over on GitHub
(https://github.com/eugenp/tutorials/tree/master/hazelcast).
https://www.baeldung.com/java-hazelcast 7/9
10/3/2021 An Introduction to Hazelcast | Baeldung
CATEGORIES
SPRING (HTTPS://WWW.BAELDUNG.COM/CATEGORY/SPRING/)
REST (HTTPS://WWW.BAELDUNG.COM/CATEGORY/REST/)
JAVA (HTTPS://WWW.BAELDUNG.COM/CATEGORY/JAVA/)
SECURITY (HTTPS://WWW.BAELDUNG.COM/CATEGORY/SECURITY-2/)
PERSISTENCE (HTTPS://WWW.BAELDUNG.COM/CATEGORY/PERSISTENCE/)
JACKSON (HTTPS://WWW.BAELDUNG.COM/CATEGORY/JSON/JACKSON/)
HTTP CLIENT-SIDE (HTTPS://WWW.BAELDUNG.COM/CATEGORY/HTTP/)
SERIES
JAVA “BACK TO BASICS” TUTORIAL (/JAVA-TUTORIAL)
JACKSON JSON TUTORIAL (/JACKSON)
HTTPCLIENT 4 TUTORIAL (/HTTPCLIENT-GUIDE)
REST WITH SPRING TUTORIAL (/REST-WITH-SPRING-SERIES)
SPRING PERSISTENCE TUTORIAL (/PERSISTENCE-WITH-SPRING-SERIES)
SECURITY WITH SPRING (/SECURITY-SPRING)
ABOUT
ABOUT BAELDUNG (/ABOUT)
THE COURSES (HTTPS://COURSES.BAELDUNG.COM)
JOBS (/TAG/ACTIVE-JOB/)
THE FULL ARCHIVE (/FULL_ARCHIVE)
WRITE FOR BAELDUNG (/CONTRIBUTION-GUIDELINES)
EDITORS (/EDITORS)
OUR PARTNERS (/PARTNERS)
ADVERTISE ON BAELDUNG (/ADVERTISE)
https://www.baeldung.com/java-hazelcast 8/9
10/3/2021 An Introduction to Hazelcast | Baeldung
https://www.baeldung.com/java-hazelcast 9/9