Hazelcast is an open-source distributed in-memory data store and computation platform. It provides a wide variety of distributed data structures and concurrency primitives, including:
IMap
Set
, MultiMap
, Queue
, Topic
FlakeIdGenerator
PNCounter
HyperLogLog
.Additionally, Hazelcast includes a production-ready Raft implementation which allows implementation of linearizable constructs such as:
FencedLock
AtomicLong
,
AtomicReference
and CountDownLatch
.Hazelcast data structures are in-memory, highly optimized and offer very
low latencies. For a single get
or put
operation on an IMap
, you
can typically expect a round-trip-time of under 100 microseconds.
It's very simple to form a cluster with Hazelcast, you can easily do it on your computer by just starting several instances. The instances will discover each other and form a cluster. There aren't any dependencies on any external systems.
Hazelcast automatically replicates data across the cluster and you are able to seamlessly tolerate failures and add additional capacity to the cluster when needed.
Hazelcast comes with clients in the following programming languages:
Hazelcast also has first-class support for running on different cloud providers such as AWS, GCP and Azure as well as on Kubernetes.
You can download Hazelcast from
hazelcast.org. Once you have
downloaded, you can start the Hazelcast instance using the script
bin/start.sh
.
Hazelcast allows you to interact with a cluster using a simple API, for example you can use the Hazelcast Java Client to connect to a running cluster and perform operations on it:
HazelcastInstance hz = HazelcastClient.newHazelcastClient();
IMap<String, String> map = hz.getMap("my-distributed-map");
map.put("key", "value");
String current = map.get("key");
map.putIfAbsent("somekey", "somevalue");
map.replace("key", "value", "newvalue");
You only need to add a single JAR as a dependency:
<dependency>
<groupId>com.hazelcast</groupId>
<artifactId>hazelcast</artifactId>
<version>${hazelcast.version}</version>
</dependency>
For more information, see the Getting Started Guide
See the reference manual for in-depth documentation about Hazelcast features.
Hazelcast Jet is a distributed batch and stream processing framework based on Hazelcast. It can be used to import/export data from/to Hazelcast using a very wide variety of data sources including Hadoop, S3, Apache Kafka, Elasticsearch, JDBC and JMS.
You can use the following channels for getting help with Hazelcast:
We encourage Pull Requests and process them promptly.
To contribute:
For an enhancement or larger feature, create a GitHub issue first to discuss.
Maven snippet:
<repository>
<id>sonatype-snapshots</id>
<name>Sonatype Snapshot Repository</name>
<url>https://oss.sonatype.org/content/repositories/snapshots</url>
<releases>
<enabled>false</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
<dependency>
<groupId>com.hazelcast</groupId>
<artifactId>hazelcast</artifactId>
<version>${hazelcast.version}</version>
</dependency>
Pull latest from repo git pull origin master
and use Maven install (or
package) to build mvn clean install
.
Hazelcast has 3 testing profiles:
mvn test
to run quick/integration tests (those can
be run in parallel without using network).mvn test -P slow-test
to run tests that are
either slow or cannot be run in parallel.mvn test -P all-tests
to run all tests serially
using network.Hazelcast uses static code analysis tools to check if a Pull Request is ready for merge. Run the following commands locally to check if your contribution is Checkstyle and SpotBugs compatible.
mvn clean validate -P checkstyle
mvn clean compile -P spotbugs
Hazelcast is available under the Apache 2 License. Please see the Licensing section for more information.
Thanks to YourKit for supporting open source software by providing us a free license for their Java profiler
Copyright (c) 2008-2020, Hazelcast, Inc. All Rights Reserved.
Visit www.hazelcast.com for more info.
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。