GigaSpaces XAP 7.1 EA 版: 弹性中间件、数据查询和 Spring 3.x

  • Gilad Manor
  • 崔康

2010 年 4 月 2 日

话题:JavaDevOps语言 & 开发架构

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)));

自动化配置使扩展和容错对客户透明。这通过节点之间的负载均衡实现,系统在可用的机器上恢复失败的数据网格分区,当内存阈值超出时在部署的机器之间移动数据。

虚拟化兼容

新版本经过测试与若干虚拟化平台如VMWareGoGrid 和RackSpace兼容。不久的将来,它还会添加TerremarkCitrix 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

JavaDevOps语言 & 开发架构