欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  资讯频道

通过Terracotta透明集成JRuby

程序员文章站 2022-05-31 21:26:36
...
RailsConf 2008大会上展示的MegLev范例展示了Gemstone的分布式虚拟机技术,能够透明的跨越不同的Gemstone虚拟机分享相同的对象内存。(注:GemStone是最先进的开发,部署和管理可扩展的,高性能,多节点应用的开发平台。)

Terracotta 是一个JVM级的开源群集框架,Fabio Kung通过Terracotta能够让JRuby获得强大的集群能力。同时Gemstone也开始在基于Java的产品之上尝试支持JRuby,同时这里有一个JRuby on Terracotta上的预先尝试,虽然近期没有更新。

Fabio Kung将自己的项目称为JMegLev,他介绍了如何让JRuby运行:

我使用Terracotta POJO集群让JRuby 内部分享给所有的集群节点,事实上,每一个runtime都拥有一个全局变量集合,类似:

public class Ruby {
  // ...
  private GlobalVariables globalVariables = new GlobalVariables();
}


public class GlobalVariables {
  // ...
  private List values = new ArrayList();
}


Terracotta 集群这些全局变量列表,列表中的任何修改被复制到所有集群中的JRuby runtime。美妙之处是你能添加任何ruby对象进入这个列表,甚至是复杂的对象类似regexps,hashes和procs。所有全局变量能够自动分享,通过全局变量提供对象引用 等功能,由Terracotta 提供集成能力。

Terracotta 也能够集群JRuby对象,在服务器端提供持久化功能。Terracotta Integration Modules (TIM)帮助Terracotta 连接ORM框架,比如hibernate TIM不会做任何持久化工作,但是能够让Hibernate使用集群/分布式 EhCache(和其他内容),只花费很少的工作,不需要真正的分布式缓存,比如JBossCache和Memcached。

了解更多点击:Clustered JRuby - Transparent Clustering of JRuby with Terracotta

Terracotta 是一个很好的项目,了解更多点击:devilbaby同学发表的:JVM-level clustering
相关标签: jruby performance