QCon 演讲火热征集中,快来分享技术实践与洞见! 了解详情
写点什么

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:002718

评论

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

兆骑科创创业赛事活动举办平台,投融资对接,线上直播路演

兆骑科创凤阁

零基础培训学习大数据课程

小谷哥

一文读懂字节跳动“埋点验证平台”

字节跳动数据平台

字节跳动 数据治理 埋点治理 数据研发 埋点验证

前端培训机构课程怎么样

小谷哥

基于DevCloud进行黑白棋实时对战游戏开发实践【华为云至简致远】

科技怪咖

带你玩转“超大杯”ECS特性及实验踩坑【华为云至简致远】

科技怪咖

大数据培训课程哪个好呢?

小谷哥

秋招冲刺版!奉上[Java一线大厂高岗面试题解析合集]

冉然学Java

面试 面试题 大厂 java; 秋招

开源一夏 | Spring事务传播机制

六月的雨在InfoQ

开源 Spring事务 8月月更

原来如此!谷歌架构师10年呕心沥血汇成的《23种设计模式》,这才是正解

冉然学Java

架构 23种设计模式 java; 编程、

国产数据库的红利还能“吃”多久?

墨天轮

数据库 国产数据库

什么是低代码开发?大家都真的看好低代码开发吗?

优秀

低代码开发

湖北钠斯网络数字藏品交易系统

开源直播系统源码

NFT 数字藏品

Java面试项目推荐,15个项目吃透两个offer拿到手软

冉然学Java

offer java; 技术栈 MAll java项目实战分享

携手数字创新 共筑国产生态 7月份AntDB与5款产品完成互认证

亚信AntDB数据库

AntDB 国产数据库 AISWare AIDB

「Gitee篇」如何用Git平台账号登录建木CI

Jianmu

git 开源 DevOps 低代码 gitee

有了国产 DevOps 工具 ,还怕数字化转型成本高?

SoFlu-JavaAI开发助手

如何选择ui设计机构

小谷哥

LED显示屏在会议室如何应用

Dylan

LED显示屏 led显示屏厂家

开源一夏 | 自己画一块ESP32-C3 的开发板(PCB到手)

矜辰所致

开源 硬件设计 8月月更 ESP32-C3

兆骑科创赛事服务平台对接,海内外高层次人才引进

兆骑科创凤阁

web前端培训班哪个好选择

小谷哥

JavaScript 里三个点 ...,可不是省略号啊···

华为云开发者联盟

JavaScript 前端 运算符 函数

有了这个开源工具后,我五点就下班了!

IT学习日记

EasyExcel 签约计划第三季 seaweedfs文件系统 java excel导出导入 java csv导出导入

面向云时代的龙蜥操作系统 是 CentOS 替代的最佳选择

OpenAnolis小助手

龙蜥操作系统 开放原子全球开源峰会 OpenAnolis 分论坛 CentOS 停服 CentOS 迁移最佳选择

【有奖征文 第13期】至简致远,“云”响世界,大胆秀出你的华为云技术主张,高额激励等你拿

科技怪咖

优雅地实时检测和更新 Web 应用

领创集团Advance Intelligence Group

Web Web应用

赶紧收藏!!!我直接上瘾!百万人都在学的Docker

指剑

签约计划第三季 8月月更

基于微信小程序的幼儿园招生报名系统开发笔记

CC同学

干货:从零设计高并发架构

C++后台开发

高并发 架构师 C/C++后台开发 C/C++开发 高并发架构

阿里巴巴最新分享Spring Cloud核心笔记,全程实例讲解,通俗易懂

Java工程师

Java spring spring-cloud

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