`
gaojingsong
  • 浏览: 1200826 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

[Hazelcast 介绍]

 
阅读更多

What is Hazelcast

Hazelcast is a distributed computation and storage platform for consistently low-latency querying, aggregation and stateful computation against event streams and traditional data sources. It allows you to quickly build resource-efficient, real-time applications. You can deploy it at any scale from small edge devices to a large cluster of cloud instances.

A cluster of Hazelcast nodes share both the data storage and computational load which can dynamically scale up and down. When you add new nodes to the cluster, the data is automatically rebalanced across the cluster and currently running computational tasks (known as jobs) snapshot their state and scale with processing guarantees.

When to use Hazelcast

Hazelcast provides a platform that can handle multiple types of workloads for building responsive applications.

  • Stateful data processing over streaming data or data at rest
  • Querying streaming and batch data sources directly using SQL
  • Ingesting data through a library of connectors and serving it using low-latency SQL queries
  • Pushing updates to applications on events
  • Low-latency queue-based or pub-sub messaging
  • Fast access to contextual and transactional data via caching patterns such as read/write-through and write-behind)
  • Distributed coordination for microservices
  • Replicating data from one region to another or between data centers in the same region

Key Features

  • Stateful and fault-tolerant data processing and querying over data streams and data at rest using SQL or dataflow API
  • A comprehensive library of connectors such as Kafka, Hadoop, S3, RDBMS, JMS and many more
  • Distributed messaging using pub-sub and queues
  • Distributed, partitioned, queryable key-value store with event listeners, which can also be used to store contextual data for enriching event streams with low latency
  • A production-ready Raft-implementation which allows lineralizable (CP) concurrency primitives such as distributed locks.
  • Tight integration for deploying machine learning models with Python to a data processing pipeline
  • Cloud-native, run everywhere architecture
  • Zero-downtime operations with rolling upgrades
  • At-least-once and exactly-once processing guarantees for stream processing pipelines
  • Data replication between data centers and geographic regions using WAN
  • Microsecond performance for key-value point lookups and pub-sub
  • Unique data processing architecture results in 99.99% latency of under 10ms for streaming queries with millions of events per second (link to blog post).
  • Client libraries in JavaPythonNode.js.NETC++ and Go

Operational Data Store

Hazelcast provides distributed in-memory data structures which are partitioned, replicated and queryable. One of the main use cases for Hazelcast is for storing a working set of data for fast querying and access.

The main data structure underlying Hazelcast, called IMap is a key-value store which has a rich set of features, including:

  • Integration with data sources for one time or continuous ingestion
  • Read-through and write-through caching patterns
  • Indexing and querying through SQL
  • Processing entries in place for atomic updates
  • Expiring items automatically based on certain criteria like TTL or last access time
  • Near cache for caching entries on the client
  • Listeners for pushing changes to clients
  • Data Replication between datacenters (Enterprise version only)
  • Persistence of data on disk (Enterprise version only)

Hazelcast stores data in partitions, which are distributed to all the nodes. You can increase the storage capacity by adding additional nodes, and if one of the nodes go down, the data is restored automatically from the backup replicas.

什么是 Hazelcast

Hazelcast 是一个分布式计算和存储平台,用于针对事件流和传统数据源进行一致的低延迟查询、聚合和有状态计算。它允许您快速构建资源高效的实时应用程序。您可以以任何规模部署它,从小型边缘设备到大型云实例集群。

 

Hazelcast 节点集群共享数据存储和计算负载,可以动态扩展和缩减。当您向集群添加新节点时,数据会自动在集群中重新平衡,当前正在运行的计算任务(称为作业)快照它们的状态并通过处理保证进行扩展。

 

何时使用 Hazelcast

Hazelcast 提供了一个平台,可以处理多种类型的工作负载以构建响应式应用程序。

 

对流数据或静态数据进行有状态数据处理

直接使用 SQL 查询流式和批处理数据源

通过连接器库摄取数据并使用低延迟 SQL 查询为其提供服务

将更新推送到事件上的应用程序

基于低延迟队列或发布订阅消息

通过缓存模式(如读/写和后写)快速访问上下文和事务数据)

微服务的分布式协调

将数据从一个区域复制到另一个区域或在同一区域的数据中心之间复制

主要特征

使用 SQL 或数据流 API 对数据流和静态数据进行有状态和容错的数据处理和查询

一个综合性的连接器库,例如 Kafka、Hadoop、S3、RDBMS、JMS 等等

使用 pub-sub 和队列的分布式消息传递

具有事件侦听器的分布式、分区、可查询的键值存储,也可用于存储上下文数据,以低延迟丰富事件流

一种生产就绪的 Raft 实现,它允许线性化 (CP) 并发原语,例如分布式锁。

使用 Python 将机器学习模型部署到数据处理管道的紧密集成

云原生,无处不在的架构

通过滚动升级实现零停机操作

流处理管道的至少一次和恰好一次处理保证

使用 WAN 在数据中心和地理区域之间进行数据复制

键值点查找和发布订阅的微秒性能

独特的数据处理架构导致 99.99% 的延迟低于 10 毫秒,用于每秒数百万个事件的流式查询(链接到博客文章)。

Java、 Python、Node.js、.NET、C++和Go 中的客户端库

操作数据存储

Hazelcast 提供了分布式内存数据结构,这些数据结构是分区、复制和可查询的。Hazelcast 的一个主要用例是存储一组工作数据以进行快速查询和访问。

 

Hazelcast 底层的主要数据结构称为IMap键值存储,它具有丰富的功能集,包括:

 

与数据源集成 一次或连续摄取

读取和写入 缓存模式

通过SQL索引和查询

处理原子更新的条目

根据某些标准(如 TTL 或上次访问时间)自动过期项目

Near cache 用于缓存客户端上的条目

用于向客户端推送更改的侦听器

数据 中心之间的数据复制(仅限企业版)

磁盘上的数据持久性(仅限企业版)

Hazelcast 将数据存储在 分区中,分区分布到所有节点。您可以通过添加额外节点来增加存储容量,如果其中一个节点出现故障,数据会自动从备份副本中恢复。

分享到:
评论

相关推荐

    openfire使用hazelCast集群

    本文将从集群概念、两大关键特性、两大能力、两大技术实现四个方面介绍 OpenFire 使用 HazelCast 集群的知识点。 一、集群概念 集群是一组协同工作的服务实体,用以提供比单一服务实体更具扩展性与可用性的服务...

    hazelcast 文档

    Hazelcast是一款专为Java设计的...Hazelcast文档还包含了3.1.3版本的更新日志、新特性介绍、从2.x版本升级指南,以及入门教程。文档的版权归属于2013 Hazelcast, Inc.,允许人们自由使用、复制、修改和分发这份文档。

    hazelcast API

    以下是对Hazelcast API 的详细介绍: 1. **分布式缓存**:Hazelcast的核心功能之一是其分布式缓存机制,它允许您在多节点集群中存储和检索数据,提高了应用程序的性能和可伸缩性。缓存API提供了丰富的操作,如put、...

    hazelcast-example:Hazelcast,Spring Boot,域驱动设计

    【Hazelcast介绍】 Hazelcast是一个开源的内存数据网格,它可以作为分布式缓存、消息队列、分布式计算和分布式事件系统使用。它能够在多节点之间共享内存数据,从而提高应用程序的性能和可伸缩性。Hazelcast支持多种...

    hazelcast-entrylistener-handoff:一个允许从Hazelcast Eventing线程移交EntryEvent处理的框架

    介绍 Hazelcast 用于响应在Map上发生的事件。 EntryListener是开发人员可以实现的回调接口,以响应于Map事件(例如Update,Add,Delete)来执行其代码。 通过内部hazelcast事件线程池调用内部EntryListeners。 描述...

    springboot hazelcast缓存中间件的实例代码

    本文将详细介绍如何使用 SpringBoot 和 Hazelcast 实现缓存中间件的实例代码。 一、添加依赖包 要使用 Hazelcast 缓存中间件,首先需要添加相应的依赖包。在 pom.xml 文件中添加以下依赖项: ``` dependencies { ...

    人事工资管理系统java源码-hazelcast-cpp-client:hazelcast-cpp-客户端

    介绍 本文档提供有关 C++ 客户端的信息。 此客户端使用 Hazelcast 并与 Hazelcast IMDG 4.0 及更高版本配合使用。 客户端 API 是完全异步的。 API 返回boost::future API,它具有 . 如果用户想要确保请求的操作在...

    hazelcast-webinar

    2. **分布式内存数据网格**:介绍Hazelcast如何通过分布式内存模型提高应用性能,如何在集群之间共享数据,以及如何确保数据的一致性。 3. **核心组件**: - 分布式Map:用于存储键值对,支持多种一致性策略。 - ...

    CaaS-Hazelcast

    - **README.md**:项目介绍和使用指南。 - **Dockerfile**:可能包含Docker配置,用于构建和部署Hazelcast服务的容器化版本。 ### 4. 开发实践 - **初始化Hazelcast实例**:通过`Hazelcast.newHazelcastInstance()...

    imdg-docs:Hazelcast IMDG 文档的源内容

    Hazelcast IMDG 文档 该存储库包含 Hazelcast IMDG 文档的 Antora 组件。 文档源文件用 AsciiDoc 标记。文档结构本节介绍有关此存储库结构的一些重要信息: 组件名称、版本和起始页在每个分支的antora.yml文件中配置...

    cqrs-eventsourcing-kafka:使用Apache Kafka和服务器端事件的具有域驱动设计和事件源的CQRS

    介绍 这个小项目的目的是说明以简单的方式应用CQRS,域驱动设计和事件源,启用Reactive体系结构并利用Kafka作为分布式消息代理的可能性。 参见: : 结构 模块 目的 services-core 所有其他模块之间共享的核心标记...

    rapidpm-binarycache

    这是Matti Tahvonen的一篇非常好的文章,向您介绍了有关JSR 107的更多信息: 建立自己的缓存 该项目带有一个所谓的聚合模块,可通过使用Maven配置文件来配置缓存组件。 默认情况下,聚合将产生一个jar,其中包含...

    tongweb6.0手册

    - Hazelcast简介:介绍Hazelcast缓存集群的技术背景。 - Hazelcast位置及目录:说明Hazelcast在系统中的部署位置及相关目录结构。 以上内容为TongWeb 6.0手册的关键知识点摘要,涵盖了从基础设置到高级配置的各项...

    Java分布式开发与集群技术.pdf

    8. OTF软件和Hazelcast软件:文档中提到了OTF软件和Hazelcast软件,但未具体说明。OTF可能是指“On-The-Fly”或“Open Travel Format”等技术或标准,而Hazelcast是一款开源的Java内存数据网格(In-Memory Data Grid...

    Vertx-Web初探

    下面详细介绍`io.vertx.core.VertxOptions`对象的各个配置项及其作用: 1. **setEventLoopPoolSize**:设置EventLoop线程池的大小,默认值为当前CPU核心数的两倍。 2. **setWorkerPoolSize**:设置Worker线程池的...

    SpringCache缓存初探共5页.pdf.zip

    在这个“SpringCache缓存初探共5页.pdf.zip”压缩包中,很可能是对SpringCache的基础知识进行了简要介绍。虽然文件名暗示内容可能只有5页,但我们可以深入探讨SpringCache的一些核心概念和技术细节。 首先,Spring...

    简单介绍Ehcache的优缺点

    4. **分布式缓存支持**:通过集成Terracotta或Hazelcast等分布式缓存解决方案,Ehcache能够实现跨服务器的数据共享,这对于构建高可用、可扩展的系统架构至关重要。 5. **易于集成与使用**:Ehcache的API简洁明了,...

    JAVA分布式缓存文档

    - **快速启动**:介绍如何快速安装并配置Hazelcast环境。 - **基础示例**:通过简单的代码示例展示Hazelcast的基本使用方法。 #### 三、分布式数据结构 Hazelcast提供了多种分布式数据结构来满足不同的应用场景需求...

    Xitrum学习笔记

    3. **集群构建**(Xitrum学习笔记20 - 和Akka、Hazelcast组成集群.pdf):Xitrum可以与Akka和Hazelcast等工具集成,实现应用的集群部署,以提高服务的可用性和伸缩性。这部分会讲解如何配置和管理集群,以及如何处理...

    mapdb-hz-offheap:为土耳其的内存中数据网格构建提供堆外存储

    介绍 HC使用Java映射为其内部数据结构。 那些对于垃圾收集器可见,并且不能与大量项目很好地缩放。 MapDB提供不受GC影响的堆外集合。 该项目将HZ和MapDB结合在一起。 该项目在HZ内部进行了非常简单的更改。 在...

Global site tag (gtag.js) - Google Analytics