写点什么

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

评论

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

Week 3 作业1

黄立

PHP 7:真实世界的应用开发(中文翻译)

GanymedeNil

php

架构师训练营第三周学习总结

文智

极客大学架构师训练营

Week 3 总结

黄立

设计模式

架构师训练营-week03-总结

大刘

极客大学架构师训练营

Apache Pulsar 9月月报:正在快速成长的下一代分布式消息流平台

Apache Pulsar

大数据 开源 云原生 Apache Pulsar 消息中间件

架构师训练营 -week03- 作业

大刘

极客大学架构师训练营

组合模式及单例模式

garlic

极客大学架构师训练营

刘华:公有云不仅是自建机房的替代品

刘华Kenneth

架构 DevOps 敏捷 弹性

硬核测试:Pulsar 与 Kafka 在金融场景下的性能分析

Apache Pulsar

大数据 开源 云原生 Apache Pulsar 消息中间件

架构师训练营 - 第 3 周学习总结(1 期)

阿甘

架构师训练营第三周作业

Shunyi

极客大学架构师训练营

Week 3 命题作业及总结

阿泰

【荒于嬉】common pool2 源码阅读纪要

luojiahu

源码阅读 common-pool2

架构师训练营 - 作业 - 第三周

Max2012

Architecture Phase1 Week3:HomeWork

phylony-lu

极客大学架构师训练营

训练营 - 第三周 - 作业一

行者

架构师训练营 - 第3周课后作业(1 期)

阿甘

极客大学 - 架构师训练营 第三周

9527

spring-boot-route(三)实现多文件上传

Java旅途

Java Spring Boot

架构师训练营第 1 期 week3

张建亮

极客大学架构师训练营

架构一期第三周作业

Airs

第三周 代码重构作业

蓝黑

极客大学架构师训练营

观看《寄生兽 生命的准则》有感

徐说科技

自然 生命 生态

架构师训练营第 1 期 - 第三周总结

Todd-Lee

极客大学架构师训练营

好好吃个饭吧,今天想吃什么?你说了算。

叶小鍵

布莱恩·万辛克 减肥、廋身 好好吃饭

Architecture Phase1 Week3:Design Pattern

phylony-lu

极客大学架构师训练营

第三周作业

华美而火锅

Java语言变量的命名规范

倔强的攻城狮

Java

架构师训练营 Week3 - 课后作业

单例模式 组合模式

第三周 代码重构学习总结

蓝黑

极客大学架构师训练营

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