写点什么

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

评论

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

IM跨平台技术学习(十一):环信基于Electron打包Web IM桌面端的技术实践

JackJiang

网络编程 即时通讯 IM

云消息队列 ApsaraMQ 成本治理实践(文末附好礼)

阿里巴巴云原生

阿里云 云原生 ApsaraMQ

闲鱼商品详情API接口:获取与应用实战指南

Noah

怎么购买GPT4o?GPT4o买不了怎么办?GPT4o订阅银行卡教程

蓉蓉

openai gpt4o

如何使用华为NEXT模拟器进行应用开发

彭康佳

android 华为 鸿蒙

又一个小伙伴在深圳上车安家~

江南一点雨

移动图形工作站有哪些价格实惠的推荐?

青椒云云电脑

图形工作站 移动图形工作站

五连冠!天翼云稳居中国专属云服务市场榜首!

天翼云开发者社区

云计算 云服务 IDC

鸿蒙系统开发如何实现跨平台功能?

FN0

鸿蒙 跨平台 HarmonyOS 鸿蒙卡片

市值风云APP装机数百万,借助NineData实现数据高效流通

NineData

数据迁移 数据管理 迁移工具 NineData 市值风云

携手知名律所,合合信息旗下名片全能王打造数字化名片“新范式”

合合技术团队

合合信息 数字名片 名片全能王

解决TaskPool中线程管理和XML解析问题的指南

彭康佳

解决DevEco Studio中的“Cannot find module”编译错误问题

彭康佳

android 鸿蒙

妙用OSGraph:发掘GitHub知识图谱上的开源故事

TuGraphAnalytics

GitHub tugraph antv osgraph x-lab

selenium滑块解锁实现的研究

霍格沃兹测试开发学社

浅析Spring中Async注解底层异步线程池原理

得物技术

Java spring 企业号2024年6月PK榜

从打点平台谈打点治理

百度Geek说

数据质量 企业号 6 月 PK 榜 打点平台 打点治理

如何在鸿蒙系统中设置Image的按压态

彭康佳

android 华为 鸿蒙

大厂扎堆入驻鸿蒙,中小应用厂商怎么跟?

ToB行业头条

孤勇者80岁老教授40年打造国产数据库第一股,达梦开盘暴涨260%

NineData

数据库迁移 国产数据库 武汉达梦数据库 达梦上市 云数据库技术

面试官:谈谈对SpringAI的理解?

王磊

Java 面试

开源数据库生态遇新变数,天翼云TeleDB提供企业数据管理更优解!

天翼云开发者社区

数据库 云计算 存储

关于web自动化过程中滑块解锁问题以及页面滚动的问题的研究

测试人

软件测试 自动化测试 测试开发

以 ZGC 为例,谈一谈 JVM 是如何实现 Reference 语义的

bin的技术小屋

ZGC JVM GC

青椒云如何通过云桌面实现移动图形工作站

青椒云云电脑

图形工作站 移动图形工作站

数字先锋| SaaS服务“拎包入住”?央企数字化转型体验感拉满!

天翼云开发者社区

云计算 数字化转型 SaaS平台

性能分析: 快速定位SQL问题

EquatorCoco

数据库 sql 性能优化

疫情之后规模最大!武汉站Meetup,腾讯云与Elastic共绘ES在AI时代搜索技术新蓝图!

腾讯云大数据

ES

用移动图形工作站做设计是种什么样的体验?

青椒云云电脑

图形工作站 移动图形工作站

《ERC-875:开启区块链资产交易新征程》

dappweb

defi 元宇宙开发 区块链开发

实现全国算力互联互通,我们是认真的!

天翼云开发者社区

云计算 算力

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