写点什么

使用 LiveRebel 2.0 更新运行在产品环境中的 Web 应用

  • 2012-06-19
  • 本文字数:1312 字

    阅读完需:约 4 分钟

将运行在产品环境中的应用更新到新版本并非易事。更新应该将对已连接用户的影响降到最低,同时如果更新不成功,那么应该可以轻松地回退到之前的版本。运行在多个服务器(比如说集群)上的应用使得更新过程变得更加复杂。通常来说,该特性是由应用服务器厂商以一种私有解决方案的形式提供的。在 Apache Tomcat 的最新版中,甚至连它都为这种零时间的停机更新提供了最低的支持。

ZeroTurnaround 提供了 LiveRebel 2.0 ,这是其针对 Java EE 应用在线更新解决方案的下一主版本。虽然 JRebel 用于项目的开发阶段,但 LiveRebel 的目标则是产品部署。LiveRebel 的一个主要特性是它可用于多个应用服务器。这是通过一个特殊的 Java agent (类似于 JRebel 的方式)实现的。目前支持如下环境:

  • Tomcat 5、6、7
  • Jetty 5、6、7、8
  • JBoss 4、5、6
  • Oracle Weblogic 9、10
  • Oracle application server 9、10
  • GlassFish open source 3.x
  • WebShere 6、7
  • 独立的 Java 应用

一个或多个服务器上分别安装了各自的 agent 后,管理员就可以统一查看所有受管理的服务器,并且可以即时更新运行着的应用。有几种更新策略,如hotpaching(类似于JRebel)或轮询的服务器重启等。LiveRebel 能够确保所有更新都是事务性的(要么全部成功、要么全部失败)并且所有更新都是可逆的。

要想使用LiveRebel,Java 应用还需要一个特殊的 liverebel.xml文件,这是一个内容无法再精简的文件,它持有打包应用的版本号。如果应用是通过 Maven 构建的,那么就能很轻松地在构建阶段集成其生成的内容

InfoQ 有幸采访到了 ZeroTurnaround 的市场经理 Oliver White 以进一步了解 LiveRebel:

InfoQ:可否将相同的应用部署到不同的服务器上(比如说一个是 GlassFish,另一个是 Tomcat),然后让 LiveRebel 对其进行更新?抑或所有服务器都要是一样的?

不必,服务器不需要是一样的。

InfoQ:LiveRebel 2.0 还为“独立”更新提供了一个选项。这到底是如何做到的呢?这是针对那些没有运行在应用服务器上的应用的么?那么 agent 安装到哪里呢?

没错,这是针对那些通过常规的“main”方法运行的应用的。agent 依旧安装到了 JVM 上,安装过程与使用应用服务器的情形是类似的(你需要通过 LiveRebel 包装器来运行应用)。然而,该模式有一些严重的限制(由于 LiveRebel 并不知晓处理 HTTP 的 socket,因此它无法代理 HTTP 请求),这意味着在更新过程中是没有轮询重启和 socket 暂停的。在该模式下,唯一有用的更新方式就是 Hotpatching 了。

InfoQ:LiveRebel 是否依赖于 JRebel?这意味着新版本的 JRebel 总是会导致新版本的 LiveRebel 出现?

LiveRebel 使用了 JRebel 技术来实现 Hotpatch 更新(作为一种更新策略),但在内部,我们是将其分开的,偶尔通过推 / 拉的方式实现两者间的变更。这种同步并不依赖于 JRebel 的发布计划。

InfoQ:能否向我们的读者介绍一下价格呢?

很遗憾,我们目前还不能披露价格,但不久之后我们的网站就会公布,现在我们只能说只要你有产品部署,那么你就能负担得起其价格。

ZeroTurnaround 现已发布了 2.0.7 版,带有改进的用户界面。要想了解更多信息,请查看文档 FAQ 以及入门指南

查看英文原文: Updating Web Applications Running In Production with LiveRebel 2.0

2012-06-19 12:591278
用户头像

发布了 88 篇内容, 共 262.0 次阅读, 收获喜欢 8 次。

关注

评论

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

飞书发布最强业务工具:新一代多维表格、低代码平台、飞书项目

ToB行业头条

电商创新策略:深度挖掘亚马逊国际商品详情API返回值

代码忍者

VMware Workstation 17.6 Pro Unlocker & OEM BIOS 2.7 for Windows & Linux

sysin

macos vmware OEM BIOS Workstation

淘宝商品详情API:优惠券与红包信息的深度解析

代码忍者

api 网关 API 策略

掌握多表查询中的表连接查询方式

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

测试

企业数智化转型实战:JNPF低代码平台的创新应用案例

EquatorCoco

低代码 数智化

面试场景题:一次关于线程池使用场景的讨论。

快乐非自愿限量之名

程序员 面试 线程池

进出口银行重庆分行支持航空飞机整机进口

科技热闻

高基数 GroupBy 在 SLS SQL 中的查询加速

阿里巴巴云原生

阿里云 云原生 sls

2024世界消费电子展览会

AIOTE智博会

消费电子展

如何处理 MySQL 主从延迟?

伤感汤姆布利柏

Redis 主从复制、切片集群

不在线第一只蜗牛

数据库 redis

淘宝商品详情API返回值中的优惠券与红包信息

技术冰糖葫芦

api 网关 API Explorer API 策略 pinduoduo API

网络管理方法及软件选择指南

Geek_a83400

Databend 产品月报(2024年8月)

Databend

艺术与科技共鸣,TCLArt艺术电视品鉴会暨公益音乐季

Lily

TikTok海外直播专线:提供稳定、高效直播体验

Ogcloud

海外直播专线 海外直播 tiktok直播专线 海外直播网络 tiktok直播网络

分布式数据库系统环境的“无感”升级

PingCAP

零一万物开源 Yi-Coder 模型;原 OpenAI 首席科学家新公司 SSI 融资 10 亿美元丨 RTE 开发者日报

声网

.Net 中各种线程同步锁

快乐非自愿限量之名

Java 线程 同步锁 .NET 7

深入理解 Babel - 微内核架构与 ECMAScript 标准化|得物技术

得物技术

web前端 企业号2024年8月PK榜

JNPF低代码开发平台,一切尽在掌握

秃头小帅oi

Java核心知识体系-并发与多线程:线程基础

EquatorCoco

Java Python

AI助攻开学季,百度文心智能体平台上线2000+教育智能体

Geek_2d6073

AV-Comparatives确定2024年夏季的主要网络安全威胁

财见

听书APP创业者的救命稻草:源码在手,开发公司倒闭都不慌!

软件开发-梦幻运营部

基于 TiDB 资源管控 + TiCDC 实现多业务融合容灾测试

PingCAP

低代码平台这么多,JNPF凭什么能火?

高端章鱼哥

如何精准选择多表查询的表连接方式?

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

测试

通义灵码最全使用指南,一键收藏

阿里云云效

阿里云 云原生 通义灵码

天翼云,AI取经路上的逐梦人

脑极体

AI

使用LiveRebel 2.0更新运行在产品环境中的Web应用_Java_Kostis Kapelonis_InfoQ精选文章