Shoal实现动态集群技术

Shoal是一个开放源代码,基于Java实现的通用集群框架。可以帮助用户在应用中添加负载均衡(Load Balancer)与容错(Failover)的集群特性,实现集群应用所要求的伸缩性与高可靠性。

作为从GlassFish中剥离出来的子项目,Shoal很好的实现了集群中节点统一管理和共享状态数据这两个重要功能,并对集群之中各个节点的加入、关闭、失败等状态实施监控和及时的消息通知。Shoal使用JXTA协议来提供peer-to-peer网络计算的可靠性和扩展性,在集群中的节点均可以根据需要加入或退出集群,并且节点可以收到其他节点的消息。

目前Shoal集群框架已经为Glassfish项目实现动态集群技术提供了很好的支持,其集群拓扑可以根据应用服务器实例的增减而动态调整,并且GlassFish支持包含HADB和内存复制在内的Session复制方案,以及可靠的Session故障恢复方案。

Shoal项目最新版本为1.1,仅有不到2M大小,包含jxta.jar(JXTA对等网协议实现)以及shoal-gms.jar(提供Shoal的GMS集群管理服务)两个类库包。作为通用的GMS解决方案,Shoal可以嵌入到任意需要拓展集群性能的Java应用中使用。在启动时,每个进程中的GMS加入到预定义好的Group中,可插拔的CommunicationProvider为Group管理和失败监控提供消息沟通的渠道。

更多Shoal集群的深入内容,请查看Shoal集群演讲稿中的介绍,其中提供了Shoal设计以及GMS启动和GMS客户端的代码示例。同时,GlassFish用户组中王昱关于GlassFish集群的介绍和Jim JIang整理的GlassFish集群资源也是非常好学习参考。

留下评论