Overview
Shoal是Glassfish的群集子项目,和Geronimo拼命整合现有开源项目相反,Glassfish在拼命拆分可独立使用的子项目。
Shoal很好的抽象了集群的两个最重要功能--群集节点管理和共享状态数据,而且,这一切是作为一个类库来提供,可以嵌入到任意的Java应用中。
集群的目标无外伸缩性与高可靠性,实现无外Load Balancer与Failover,而Shoal对这两点实现提供了很好的支持。可关注此项目的发展与应用,也可以基于它来学习一下群集的实现。
集群管理SPI
毫无例外地基于JXTA/JGroups。
- 节点可以加入,退出集群。
- 节点可以收到其他节点加入,退出(由节点主动发布),怀疑失效,确认失效(由心跳系统发出)的消息。
- 实现了FailureRecoveryAction的节点可以收到虚拟管理器发来的接手某个失效服务器的指示。
- 节点可以群发或一对一发送消息。
基于上面的功能,可以....
- 可以做负载均衡分发器(仍然要自己实现),根据有效的群集节点来进行分发,节点还可以用sendMessage()接口发送自己的负载情况。
- 可以做FailOver,当系统不是SNA架构时,接手处理的节点会根据指示,完成某些初始化工作,比如从共享内存中获取前任的数据,以保证自己能接手工作。
- 如果共享数据只读或者多数为读,可以不用共享内存,而是各自在本地建立对象,然后通过群集管理SPI的sendMessage函数来通知更新。
状态数据共享SPI
使用专有的API进行读写,基于使用集群内机器循环备份算法。
对比其他分布式缓存方案,是分布式内存方案,共享数据不会基于某种规则失效(如总内存大小1G,先进先出),也不会自动清空过时数据。
示例代码
完整示例代码 ,比如启动GMS的代码如下:
GMSFactory.startGMSModule(serverName,
groupName, GroupManagementService.MemberType.CORE, null);
分享到:
相关推荐
Java集群框架Shoal是一个用于构建容错和可靠JavaEE应用服务器的基础架构工具,同时它也是一种可以集成到任何需要集群和分布式系统支持的Java应用中的动态集群框架。Shoal作为GlassFish(版本v2及以后)和JonAS应用...
Java 集群框架Shoal是一个专门为构建容错、可靠和可用的Java EE应用服务器设计的基础设施。它不仅适用于GlassFish(v2及其后续版本)和JonAS应用服务器的集群引擎,而且可以插入到任何需要集群和分布式系统支持的...
《深入理解Groovy-SLF4J-NDC:开源项目shoal-gms-api-1.6.17.1.zip解析》 在信息技术领域,日志记录是软件开发中的一个关键部分,它帮助开发者追踪程序运行状态,定位并解决问题。SLF4J(Simple Logging Facade for...
Shoal是一套设计用于高性能计算(HPC)环境的集群通信库,特别适用于进行大规模聚类分析。该框架基于Java语言,利用Gossip协议实现节点间的通信,确保高可用性和容错性。Gossip协议是一种去中心化的信息传播机制,...
标题中的"PyPI 官网下载 | shoal-client-0.2.tar.gz"指的是Python Package Index(PyPI)上发布的名为“shoal-client”的软件包的0.2版本,该包以tar.gz格式提供。PyPI是Python社区广泛使用的官方仓库,用于发布和...
官方版本,亲测可用
官方版本,亲测可用
官方版本,亲测可用
官方版本,亲测可用
官方版本,亲测可用
官方版本,亲测可用
官方版本,亲测可用
官方版本,亲测可用
官方版本,亲测可用
官方版本,亲测可用
官方版本,亲测可用
官方版本,亲测可用
官方版本,亲测可用