写点什么

Terracotta 实战示例——集群 RIFE

  • 2007-06-20
  • 本文字数:822 字

    阅读完需:约 3 分钟

Terracotta 的 Jonas Bonér最近详述了他和Geert Bevin(最近被Terracotta 招至旗下)如何群集RIFE Web 应用框架。这篇文章提供了RIFE Continuations 实现的颇有价值的深入见解和集群RIFE 这样一个不凡应用框架遇到的挑战。

Bonér 从介绍 RIFE 如何实现 Continuations 开始:

RIFE 的 Continuations 的目标是以通用库的形式,用纯 Java 形式支持 continuations[…] 它使用字节码方法(基于 ASM)来生成代码重定义 Class,以最高效的方式支持 Continuations 的实现。它不依赖于 Java 的序列化(Serialization)机制,而是把对象分拆成原始类型并把数据存储于执行栈中(类似 Terracotta 的方法)[…]Continuations 以树的结构连接在一起,可以任意访问不同的执行步骤。这意味着你可以任意回退或前进,很灵巧的解决了浏览器回退按钮的问题——如果在 Web 应用环境下使用的话。 在内部,RIFE 将 Continuations 存储于普通的java.util.HashMap中。

群集 RIFE 的第一个障碍是线程安全地访问这个 HashMap。RIFE 初始的实现,基于性能的考虑,只设计使用一条线程来访问 Map。在群集环境下,会由多个 JVM 并发访问。

第二个挑战是关于 Class Loader 的,就如应用服务器和 Web 框架的常见情形,RIFE 实现了自己的 Class Loader 来实现一系列特征,就像 Java 的系统 Class Loader 一样,这些 Class Loader 对于 Terracotta 不是现成可见的:

Terracotta 需要可以唯一的定义一个 Class Loader 的原因是它需要一个方法,在任意时刻任意节点,获得已载入了特定 Class 的 Class Loader 实体,以在群集范围内维护对象标识。

Bonér 和 Bevin 面对的最大挑战是如何群集 RIFE 模板引擎的动态。RIFE 可能在运行时动态的按需生成类。在节点崩溃时,在节点上生成的类就需要复制到接手处理请求的节点上。解决方案是构造一个 HashMap,实现群集范围的字节码仓库,RIFE 的 TemplateClassloader 被修改为指向这个仓库。

查看英文原文: A Real World Example of Using Terracotta: Clustering RIFE

2007-06-20 02:002865

评论

发布
暂无评论
发现更多内容

Flink CEP 新特性进展与在实时风控场景的落地

Apache Flink

大数据 flink 实时计算

软件测试 | Selenium 安装

测吧(北京)科技有限公司

测试

vivo官网App模块化开发方案-ModularDevTool

vivo互联网技术

android 客户端 模块化

问:React的useState和setState到底是同步还是异步呢?

beifeng1996

React

【开发宝典】Java并发系列教程

京东科技开发者

Java 内存 并发 Monitor 企业号 2 月 PK 榜

京东前端react面试题及答案

beifeng1996

React

前端二面经典vue面试题总结

bb_xiaxia1998

Vue

深度学习调参小册

京东科技开发者

人工智能 深度学习 后端 调优参数 企业号 2 月 PK 榜

前端一面必会vue面试题总结

bb_xiaxia1998

Vue

git 怎么将一个 patch 文件打到一个目录下的所有git仓库

ModStart

Java高手速成 | WebFlux框架的函数式开发模式

TiAmo

Java WebFlux

vue为什么v-for的优先级比v-if的高?

bb_xiaxia1998

Vue

new Vue的时候到底做了什么

bb_xiaxia1998

Vue

云端智创 | 批量化生产,如何利用Timeline快速合成短视频?

阿里云CloudImagine

云计算 音视频 智能媒体生产

软件测试 | Selenium IDE用例录制

测吧(北京)科技有限公司

测试

Avatar阿凡达模式项目系统开发逻辑(成熟技术)

I8O28578624

前端二面经典react面试题

beifeng1996

React

问:你是如何进行react状态管理方案选择的?

beifeng1996

React

重磅官宣,OpenHarmony技术峰会来了

OpenHarmony开发者

OpenHarmony

测试进阶之路—新手关于测试碎碎念篇

京东科技开发者

测试 经验分享 分析 效能 企业号 2 月 PK 榜

Terracotta实战示例——集群RIFE_Java_Scott Delap_InfoQ精选文章