Hazelcast是面向Java的缓存、集群及数据分发解决方案。最近,它的2.0版本发布了。作为新版本的一部分,该产品提供了商用企业版和免费的开源社区版。
其中,社区版在Apache许可2.0下发布,并托管于Google Code中。2.0版本包含了一个分布式备份功能,用以确保每个结点都能均匀地被所有其他结点备份。Hazelcast创始人Talip Ozturk告诉InfoQ说,“我相信我们的备份分发是一个全新的解决方案”。
另外,企业版增加了堆外(off-heap)存储(注:Hazelcast中将其称作弹性内存(Elastic Memory))、附加的安全能力和一个原生的C#客户端。Hazelcast解决方案的工作原理是将差不多大小的数据分布到集群中的每个结点上。例如,在一个50个结点的结点集群中,每个结点存储20GB的基本数据以及20GB的备份数据。结点1数据会分成1/49大小的若干份,并由剩余49个结点中的每一个进行备份。如果结点1下线,那么任何迁移都不用就可以让集群保持均衡。随着新节点加入到系统中,Hazelcast会慢慢地将数据迁移到新结点来让所有结点上的数据保持均衡。
新版2.0中的其他特性包括:
- 并行IO,它将对内(In)和对外(Out)通信联合到单个线程中(在1.0版本中,每个成员会拥有对内和对外线程各一个,用作处理与其他使用NIO信道的成员进行通信)。
- 改善连接管理,Hazelcast在破损连接被宣布死亡之前会尝试进行修复。
- 为Queue、List、Set和Topic提供新的事件容器。
出于安全考虑,该产品包含了一份基于JAAS的实现,用作验证集群成员及客户端,并对客户端操作进行访问控制检查。访问控制可根据终端点委托或代码进行管理,而安全性可以通过使用XML或API启用和配置。
弹性内存本质上是一种解决过长GC中断时间(pause time)的变通方案。Azul推出的C4收集器是一个例外,它消除了所有的GC中断。借助它,商业JVM中的垃圾收集中断时间会随内置堆的大小明显增长。弹性内存可以减少JVM堆的大小,从而降低垃圾收集的中断时间。关于这点,Ozturk给出了一个大致的建议:
Hazelcast的弹性内存采用直接字节缓存区(direct byte buffer)实现,其中每个缓存区分为若干块,每块默认大小为1KB。这个特性类似于Oracle的Coherence、Terracotta的Ehcache以及一些其他提供商的缓冲方案。
相关推荐
HazelcastMQ 是基于 Hazelcast 的核心特性构建的。HazelcastMQ 能很方便的嵌入到当个 JVM 或者通过大量的节点集群。HazelcastMQ 分解成多个组件:hazelcastmq-core:核心 MQ 库,提供 JMS 2.0 类似的 API ,用来发送...
Activiti 6.0支持BPMN 2.0的全部特性,包括活动、网关、事件、数据对象等,允许开发者通过图形化方式设计复杂的业务流程。 3. Activiti 源码结构: "codes/"目录下的源码可能包含以下几个主要部分:引擎(engine)...
- `spring-boot-security-example`:介绍如何集成 Spring Security 进行权限控制。 - `spring-boot-mongodb-example`:使用 Spring Data MongoDB 操作 NoSQL 数据库。 - `spring-boot-email-example`:展示如何通过 ...
- JPA 2.0支持:Spring 3.1改进了对Java Persistence API的支持,包括更丰富的查询API和更好的事务管理。 - JDBC模板:增加了对批量操作和多结果集处理的支持。 7. **Web MVC**: - RESTful支持:Spring 3.1加强...
Spring 3.2.0.M1 还引入了对Java EE 6的更好支持,包括对CDI(Contexts and Dependency Injection)的集成,以及对JPA 2.0的增强。这使得Spring应用在企业级环境中能够更好地与其他Java EE技术协同工作。 此外,该...
Spring Boot 的核心特性之一是自动配置,它会根据项目依赖来自动配置相关的 Bean。开发者只需要在项目中引入相应的 Starter 包,如 `spring-boot-starter-web`、`spring-boot-starter-data-jpa` 等,即可启动对应的...
Camunda支持BPMN 2.0标准,我们可以使用Camunda Modeler或其他支持BPMN的工具创建流程定义文件(`.bpmn`)。将这些文件放入`src/main/resources/processes/`目录下,Spring Boot启动时会自动部署它们。 4. **编写...
1.5.x 是 SpringBoot 1.x 系列的稳定版本,而 2.0.x 是 2.x 系列的第一个主要版本,带来了许多新特性和改进,包括对 Spring Framework 5.0 的支持、Java 9 的兼容性、更好的健康检查和 Actuator 功能等。 文件列表...
从"version 2.0"来看,这个项目可能已经过升级,增加了新的特性和优化,例如更好的性能、更多的安全特性或者更丰富的API。 在具体实现上,这个项目可能包含以下几个关键组件: - **Session Store**:用于存储和...