写点什么

Java 内存数据网格 Hazelcast 3.0 支持连续查询和条目处理

  • 2013-10-21
  • 本文字数:2141 字

    阅读完需:约 7 分钟

Java 开源内存数据网格 Hazelcast 的最新版本支持“条目处理(Entry Processing)”、多线程执行、连续查询和延迟索引。Hazelcast 3.0 在两周前的 JavaOne 会议期间发布,体现了该产品自 2008 年创建以来的最大变化,以及改写其 70-80% 的代码所做出的努力。它还使用服务提供程序接口(SPI)重新实现了所有现有的分布式对象,如 Map、Queue 和 ExecutorService 等。

借助多线程执行这一新特性,操作现在可以由多个线程执行(由处理器内核因子确定),这有助于在多核机器上进行扩展。新 SPI 允许开发新的分区服务和数据结构。所有 Hazelcast 数据结构,如 Map、Queue,均使用 SPI 进行了重新实现。

Hazelcast 3 的其它技术特性包括:

条目处理:Hazel cast 3 有一个称为条目处理的新特性,使开发人员可以对 Map 进行快速内存操作,而无须担心锁或并发问题。 EntryProcessor 是一个可以修改或替换映射条目值的接口。它既可以作用在单个映射条目上,也可以作用在所有映射条目上。未来版本还会增加使用 Predicate 选择目标条目的支持,如“查找和替换”。EntryProcessor 可以与 Hazelcast 的另一个新特性一起使用:内存格式设置。在默认情况下,条目值存为字节数组(二进制格式),但当它存为对象(对象格式)时,条目处理器可以直接作用在该对象上。EntryProcessor 的另一个特性是,它可以自动取得映射条目的独占访问,而无须使用同步来防止更新丢失。

序列化:作为现有序列化方法的一种替代方法,Hazelcast 提供了Portable 序列化接口。该接口有许多优点,如相同对象类型的多版本支持和不依赖于反序列化和/ 或反射的查询和索引支持。Hazelcast 还提供了IdentifiedDataSerializable 接口,它是DataSerializable 接口的略微优化版本,不使用类名和反射进行反序列化。Hazelcast 还允许开发人员插入自定义的串行器用于对象序列化。

连续查询:特性允许程序员设置查询,这些查询会在addition/update/remove/evict 事件中的任何数据与其相匹配时触发。这一过程由侦听器完成。侦听器使用查询进行注册,并在Map 条目发生了与查询相匹配的变化时获得通知。在支持诸如复杂事件处理(CEP)这样的情况时,这很有用,而此类情况通常需要单独的产品支持。

延迟索引:借助延迟索引这一新特性,开发人员无须每次在开始阶段就添加索引,而是可以在任何时候为条目添加索引。

分布式事务: Hazelcast 3 支持两阶段提交的分布式事务。新事务API 同时支持1- 阶段(本地)和2- 阶段事务。

InfoQ 就新版本的特性与 Hazelcast 的共同创建者 Fuad Malikov 进行了交谈。

InfoQ:在新版本中增加分布式事务支持的动机是什么?与关系数据库中的 2PC 事务相比,它在内存数据网格中是如何工作的?该特性有什么限制吗?

Fuad我们听取了很多来自社区的建议。Hazelcast 用户要求 Hazelcast 提供 2 阶段提交(2PC)事务的能力。例如,他们希望能够在一个分布式队列中消费一个数据项,对其进行处理,然后将一个条目存入另一个分布式 Map 中。这整个过程需要在一个事务中完成,这样,在节点失败时,才不会丢失未处理的数据。

Hazelcast 是完全的内存解决方案,在默认情况下,它依赖多节点内存复制实现持久性。2PC 的实现也是如此。在准备状态,它就在多个节点上复制事务状态。

另外,Hazelcast 的下一个版本将能够通过 JCA 以及 JMS 和 JDBC 等其它资源参与 XA 事务。

InfoQ:对于 Hazelcast v3 中的连续查询特性,您可以解释下它的工作原理吗?

Fuad在这些特性中,这是另一个使人们认识到内存数据网格不仅仅是缓存的特性。连续查询提供了便利和分布式处理能力这一“存储过程”由来已久的思想,但它与现代复杂事件处理(CEP)模式更为类似。与数据库存储过程不同的是,在 Java 中,连续查询可以保证应用层中应用逻辑的清晰。除此之外,它还具有其它优点,包括有极高的可扩展性,以及能够保证在数据所在的位置对其进行处理,从而使这一过程非常快速和高效。

连续查询的实现结合了 Event 和 Predicate API。Hazelcast 支持 EntryListener,该侦听器监听在 Map 条目上进行的 ADDED、UPDATED、REMOVED 或 EVICTED 等操作。在先前的版本中,它就可以监听所有的 Map 条目或者特定的 Key。除此之外,借助连续查询特性,开发人员可以定义查询(Predicate),而只有更新的条目与该查询匹配时才会触发事件。通过这种方式,侦听器会收到一个基于查询的连续的事件流。

InfoQ:在 Hazelcast 的下一个版本中,有什么开发人员可以期待的新特性和功能增强吗?

Fuad为了创建 Hazelcast 3,它 70-80% 的代码都重写了,这使我们能够支持一些主要架构的模块化。在下一个版本里,其中一个真正令人兴奋的特性是服务提供程序接口(SPI)。我们将 Hazelcast 内部构件分成 Networking、Clustering、Partitioning 和 Service 等四个模块。这些内部构件将暴露为 SPI,因此社区可以对 Hazelcast 进行扩展和开发自定义的分布式数据结构和处理服务。另一个特性是可移植客户端协议。该协议使开发人员可以用任何语言实现客户端。我们会发布 C++ 客户端,并期待由社区来实现其它语言的客户端,如 Python 和 Ruby。

Hazelcast 3 遵循 Apache 2 许可协议,可以从其产品网站上下载。

查看英文原文: Java In-Memory Data Grid Hazelcast 3.0 Supports Continuous Queries and Entry Processing

2013-10-21 01:445757
用户头像

发布了 256 篇内容, 共 101.3 次阅读, 收获喜欢 12 次。

关注

评论

发布
暂无评论
发现更多内容

AI助力Calvin Klein实现供应链精准决策

第七在线

Web3软件系统的开发框架

北京木奇移动技术有限公司

区块链技术 软件外包公司 web3开发

KET口语陪练APP的功能

北京木奇移动技术有限公司

软件外包公司 AI口语APP KET考试

迭代器失效:99%的C++程序员都会踩的坑 !

秃头小帅oi

开发者即创世者——HarmonyOS极客马拉松2025英雄召集令

HarmonyOS开发者

嘉为蓝鲸受邀出席 2025 GOPS全球运维大会·深圳站

嘉为蓝鲸

GOPS全球运维大会

大模型辅助科研编程实录分享:效率飙升!“分分钟搞定”,智能体编排如何加速工作流

ModelWhale

TextIn ParseX重磅功能更新:支持切换公式输出形式、表格解析优化、新增电子档PDF去印章

合合技术团队

人工智能 算法 #大数据

财务合同MCP实践

京东科技开发者

Uniapp开发鸿蒙应用教程之自定义导航栏

幽蓝计划

鸿蒙跨平台开发

DeepSeek 谈运维:AI 时代运维资源升级,从数据资产到智能能力的进阶之路

嘉为蓝鲸

AIOPS 智能运维 DeepSeek

信创BeeWorks-国产化企业级im即时通讯软件

BeeWorks

即时通讯 IM

AI编程新时代,CodeBuddy 带你来体验

六月的雨在InfoQ

AI编程 CodeBuddy CodeBuddy首席试玩官 AI 代码助手

CST软件如何将Altium的PCB板子导入CST

思茂信息

cst仿真软件 CST软件 CST Studio Suite

驳“RAG 已死”论:上下文窗口扩展≠RAG 终结

Baihai IDP

AI LLM rag 检索增强生成 长上下文语言模型

Web3应用的上线流程

北京木奇移动技术有限公司

区块链开发 软件外包公司 web3开发

大模型技术跃迁,容联七陌开启智能客服新纪元

人称T客

ITSM运营:降低变更风险的自动化与流程优化实践

嘉为蓝鲸

ITSM 智能运维

Linux内核与芯片设计的深度结合:助力底层技术突破

博文视点Broadview

仿真驱动创新丨Altair仿真+AI如何赋能轨道交通数字化升级列车创新?

Altair RapidMiner

数字孪生 仿真 CAE physicsAI 轨道交通

用低代码打造企业AI中台,真的可行吗?

天津汇柏科技有限公司

人工智能 低代码

用小猫的视角看世界——关于「小猫相机」的一点浪漫构想

花十君

小猫相机 浪漫视角 柔软镜头 猫咪视角

什么是数据集市(Data Mart)?

镜舟科技

数据仓库 OLAP 数据集市 多维数据模型 在线分析处理

行业分享丨虚拟原型技术:颠覆传统,引领矿业装备设计新纪元

Altair RapidMiner

AI 数字孪生 仿真 CAE 离散元仿真

信息化、数字化、数智化之间的区别和联系

积木链小链

数字化 信息化 智能制造

AI智能体:大模型之后的下个技术革命?

测试人

人工智能

工单智能化应用有哪些,工单管理系统选型推荐

云智慧AIOps社区

DotNet 入门(一):环境安装

北桥苏

.net dotnet

“一键登录“变”一键沦陷”?小心高校统一认证平台成黑客“后门"!

权说安全

网络安全 统一身份认证

Web3软件系统的技术架构

北京木奇移动技术有限公司

区块链技术 软件外包公司 web3开发

Java内存数据网格Hazelcast 3.0支持连续查询和条目处理_Java_Srini Penchikala_InfoQ精选文章