通过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都拥有一个全局变量集合,类似:
和
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
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