GigaSpaces XAP 是一款包含内存数据网格的分布式应用服务器。GigaSpaces 起初是作为一种商业分布式 JavaSpaces 实现,随后扩展增加了内存数据网格功能,如本地缓存、回收和查询支持。后来进一步发展,GigaSpaces 引入了基于Space 的架构作为针对企业应用在扩展性和低延迟方面的广泛解决方案。基于space 架构的核心在于扩展的轻量级Spring 容器,包含了中间件功能,如数据存储和消息机制。该容器被复制到网格中的其他机器上,实现线性扩展。在最近几个版本中,产品专注于用户体验的便捷性和分布式应用的管理。
XAP 7.1 版包括了大量新功能:
弹性中间件服务
新的弹性中间件服务兼容 Amazon EC2 ,旨在简化部署和使用。该功能的首个里程碑版本包含了弹性数据网格功能。
陈旧、底层的配置(如域名绑定、IP 地址和数据网格划分等等)被高层次的细节和数据网格的初始、最大容量所替代。 凭借新的弹性中间件服务,系统能够识别可用的硬件资源或者提供所需的资源(虚拟环境下)并通过预先设定的配置启动数据网格。API 类似于如下内容:
elasticServiceManager.deploy(new ElasticDataGridDeployment("mygrid") .isolationLevel(IsolationLevel.DEDICATED) .highlyAvailable(true) .elasticity("2GB", "6GB") .jvmSize("512MB") .addSla(new MemorySla(70)));
自动化配置使扩展和容错对客户透明。这通过节点之间的负载均衡实现,系统在可用的机器上恢复失败的数据网格分区,当内存阈值超出时在部署的机器之间移动数据。
虚拟化兼容
新版本经过测试与若干虚拟化平台如 VMWare 、 GoGrid 和 RackSpace 兼容。不久的将来,它还会添加 Terremark 和 Citrix Xen 集成。
数据查询
数据网格查询功能得到了改进,目前支持利用路径表达式通过关联对象字段查询数据:
SQLQuery query = new SQLQuery(Person.class, "address.street.number = 1");
空间查询的索引利用一组新的注解通过父类控制:
@SpaceClass public class Person { private String lastName; private String firstName; private Integer age; ... @SpaceIndex(type=IndexType.BASIC) public String getFirstName() {return firstName;} public void setFirstName(String firstName) {this.firstName = firstName;} @SpaceIndex(type=IndexType.BASIC) public String getLastName() {return lastName;} public void setLastName(String name) {this.lastName = name;} @SpaceIndex(type=IndexType.EXTENDED) public String getAge() {return age;} public void setAge(String age) {this.age = age;} }
管理应用
该版本引入了管理工具的新 web 界面,一个基于 GWT / AJAX 的控制板,实时汇总整个集群的视图和运行组件,同时提供图形和表格两种显示方式(图 1)。现有的管理 GUI(之前的 7.0 版引入)增加了线程快照和跟踪所有注册 JVM 的汇总日志。线程 dump 功能也可以通过 API 调用。
图 1:web 管理控制板
嵌入 Spring 3.0
XAP 7.1 服务器现在嵌入了 Spring 3.0 ,向后兼容早期的 Spring 2.5。但是建议在部署应用之前,采用 Spring 3.0 重新编译应用。
性能改进
本版的一些性能改进:
- 支持多线程、SQL 查询的并发处理以应对复杂查询。
向外扩展的步骤
为了在现有的应用上使用 XAP 7.1 框架,需要针对应用处理的问题领域采取渐进的步骤。如下:
- Web 层:使用 XAP 部署标准 WAR 文件,以实现动态负载均衡。
- 消息 / 事件:使用 XAP 事件监听器替代现有的消息驱动 Bean,以实现消息机制。
- 远程化:通过添加 POJO 的注解或者使用 Spring XML 配置来与远程调用和异步远程化集成。
- 数据存取(初级):集成 GigaSpaces XAP 的初级应用是将其作为 Hibernate 的二级缓存。针对密集读操作的场景显著地提高性能。
- 数据存取(高级):通过划分数据模型结构和把 DAO 转换成直接访问 XAP 内存数据网格,改进读写性能。
- 事务:无需修改基于 Spring 的应用。对于其他应用来说,建议使用 Spring 事务框架。
更多信息,请访问 XAP 7.1 EA 版的相关文档和下载。
查看英文原文: GigaSpaces XAP 7.1 EA: Elastic Middleware, Data Querying and Spring 3.x
评论