科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道基础软件设计美好的服务器(5)--Shoal集群框架

设计美好的服务器(5)--Shoal集群框架

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

Shoal是Glassfish的群集子项目,和Geronimo拼命整合现有开源项目相反,Glassfish在拼命拆分可独立使用的子项目。Shoal很好的抽象了集群的两个最重要功能--群集节点管理和共享状态数据。

作者:江南白衣 来源:CSDN 2008年1月30日

关键字: 集群框架 Shoal

  • 评论
  • 分享微博
  • 分享邮件

Shoal是Glassfish的群集子项目,和Geronimo拼命整合现有开源项目相反,Glassfish在拼命拆分可独立使用的子项目。

Shoal很好的抽象了集群的两个最重要功能--群集节点管理和共享状态数据,而且,这一切是作为一个类库来提供,可以嵌入到任意的Java应用中。

集群的目标无外伸缩性与高可靠性,实现无外Load Balancer与Failover,而Shoal对这两点实现提供了很好的支持。可关注此项目的发展与应用,也可以基于它来学习一下群集的实现。

集群管理SPI

毫无例外地基于JXTA/JGroups。

  • 节点可以加入,退出集群。
  • 节点可以收到其他节点加入,退出(由节点主动发布),怀疑失效,确认失效(由心跳系统发出)的消息。
  • 实现了FailureRecoveryAction的节点可以收到虚拟管理器发来的接手某个失效服务器的指示。
  • 节点可以群发或一对一发送消息。

基于上面的功能,可以....

  • 可以做负载均衡分发器(仍然要自己实现),根据有效的群集节点来进行分发,节点还可以用sendMessage()接口发送自己的负载情况。
  • 可以做FailOver,当系统不是SNA架构时,接手处理的节点会根据指示,完成某些初始化工作,比如从共享内存中获取前任的数据,以保证自己能接手工作。
  • 如果共享数据只读或者多数为读,可以不用共享内存,而是各自在本地建立对象,然后通过群集管理SPI的sendMessage函数来通知更新。

状态数据共享SPI

使用专有的API进行读写,基于使用集群内机器循环备份算法。
对比其他分布式缓存方案,是分布式内存方案,共享数据不会基于某种规则失效(如总内存大小1G,先进先出),也不会自动清空过时数据。

 

查看本文来源
    • 评论
    • 分享微博
    • 分享邮件
        邮件订阅

        如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

        重磅专题
        往期文章
        最新文章