如何在Liberty服务器发生故障时进行故障恢复

可以利用 IBM HTTP 服务器机器插件在前端作">负载均衡,将请求分发给多个 Liberty 服务器。Liberty 服务器上的应用可以将应用会话信息保存在数据库中,被多个 Liberty 服务器共享。当某个 Liberty 服务器发生故障时,可用的其他 Liberty 服务器会将故障 Liberty 服务器存在会话数据库中的会话信息接管过来,继续处理,保持服务的持续可用。本文将向您介绍如何启用会话的数据库持久性,会话亲和性,以及如何在某个 Liberty 服务器发生故障时进行故障恢复。

IBM WebSphere Application Server V8.5 提供两类不同的服务器概要文件,一类是众所周知的传统 WebSphere 应用服务器(以下简称 tWAS V8.5) 的概要文件,包括 Cell, Deployment Manager, Application Server, Custom 等;另一类是轻量级、动态的应用服务器 Liberty 服务器概要文件,支持 Web 和 OSGi 应用编程模型,大大地改善了开发者体验,同时可用于生产环境。

使用过 WebSphere 应用服务器的人员都知道,WebSphere 应用服务器 V8.0 以前的版本 ( 包括 V8.0) 支持集群,可以利用集群构建高可用环境,同时支持三种会话持久性,内存到内存,数据库,WebSphere Extreme Scale,可以选择将集群上的应用所产生的会话信息以不同形式存放和复制。在故障发生的时候,能够保证会话信息不丢失,并能够保证服务不间断。

tWAS V8.5 依然能够提供同样的高可用服务,但是 Liberty 目前的版本不支持集群,在 Liberty 应用于生产环境时,随着请求负载的增加,单个 Liberty 可能不再满足用户的需求,需要增加到多个。本文将通过 3 个场景,向您介绍如何利用 IBM HTTP Server 及其插件和 Liberty 搭建高可用环境,以及当故障发生时,如何进行故障恢复。

场景 1:通过 IBM HTTP Server 及其插件分发请求到多个 Liberty 服务器

图 1 中,我们列举了三个 Liberty 服务器作为例子,在它们的前端放置 IBM HTTP Server 及其插件作为负载均衡器,进行请求的分发。有一个数据库服务器,主要用于企业级应用的数据存储,以及会话数据的存放。本文主要讨论 Liberty 的高可用性,此处我们并没有构建数据库和 IBM HTTP Server 的高可用性。

下面将介绍如何搭建这个拓扑环境。

图 1. Liberty 高可用环境拓扑

搭建多个 Liberty 服务器

Liberty 的安装非常简单,您可以通过解压即安装的方式进行安装,也可以通过 IBM 安装管理器 (Installation Manager) 安装 Liberty,也可以通过 Job Manager 将 Liberty 包(包括运行时,应用,服务器配置)分发到多个目标机器上去,快速构建多个 Liberty 服务器环境。该例中使用解压方式。

首先,从 wasdev.net 下载 Liberty 运行时的安装包,在某台机器上解压 Liberty 安装包,通过以下命令创建一个 Liberty 服务器,然后启动之。

<wlp.install.directory>/bin/server.bat/sh create <serverName>

<wlp.install.directory>/bin/server.bat/sh start <serverName>

请注意:此处 <wlp.install.directory> 指的是 Liberty 服务器的解压目录。<serverName> 可以是用户自定义的字符串,作为服务器名。

然后,将应用 WAR 或包含 WAR 的 EAR 包复制到 <wlp.install.directory>/usr/servers/<serverName>/dropins 目录下,然后在 server.xml 中配置该应用所需的 feature、JDBC Provider 及数据库资源。向 Liberty 服务器安装应用有多个方式,这里用的是直接将应用拖放到 dropins 目录下,即对其进行了安装。

最后,保证 Web 应用能够正确运行在 Liberty 服务器上。Liberty 服务器的整个目录,包括运行时、应用、配置,可以被直接复制到其他机器上使用,而不需要重新安装和配置应用。验证多个 Liberty 服务器上的同一个 Web 应用都可以被正确访问。

时间: 2024-08-01 19:54:28

如何在Liberty服务器发生故障时进行故障恢复的相关文章

网管实战:排除服务器离奇故障案例两则

同样的服务器开展不同的服务应用时,它们可能遇到的故障会截然不同,甚至有的故障看起来简直就是稀奇古怪!可就是这些稀奇古怪的服务器故障,常常会使我们普通的网络管理人员应对乏术,最终影响了服务器的高效运行.有鉴于此,我们应该多从实战角度出发,多掌握一些排除服务器特殊故障的方法和思路,才能确保日后遇到服务器稀奇故障时从容应对.这不,本文下面就把笔者经历过的两则服务器稀奇故障排除过程贡献出来,以飨各位朋友! 1.服务器无法成为辅助域控制器 单位局域网中有一台主域服务器,该服务器安装的是Windows 20

在 Linux 下使用 RAID(八):当软件 RAID 故障时如何恢复和重建数据

在阅读过 RAID 系列 前面的文章后你已经对 RAID 比较熟悉了.回顾前面几个软件 RAID 的配置,我们对每一个都做了详细的解释,使用哪一个取决与你的具体情况. 恢复并重建故障的软件 RAID - 第8部分 在本文中,我们将讨论当一个磁盘发生故障时如何重建软件 RAID 阵列并且不会丢失数据.为方便起见,我们仅考虑RAID 1 的配置 - 但其方法和概念适用于所有情况. RAID 测试方案 在进一步讨论之前,请确保你已经配置好了 RAID 1 阵列,可以按照本系列第3部分提供的方法:在 L

图片-使用Intent打开一个界面时,发生故障

问题描述 使用Intent打开一个界面时,发生故障 使用Intent打开一个界面时,发生故障,在logcat中显示如下图 怎么破????? 解决方案 你需要 COPY 一些代码,只看日志,没看出错误原因,不能定位到哪一行错误: 解决方案二: @Overrideprotected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);setContentView(R.layout.map);tvA

c#-C#在向服务器发送请求时发生传输级错误。

问题描述 C#在向服务器发送请求时发生传输级错误. 路由器防火墙/病毒过滤开启的情况下,con.open()异常. 病毒过滤192.168.1.14 08-60-6E-C5-07-F0 端口:TCP:1433 被阻断. MSSqlserver 链接数据库引擎也直接在向服务器发送请求时发生传输级错误. (provider: TCP 提供程序, error: 0 - 远程主机强迫关闭了一个现有的连接.) 有没有在不调整用户本地路由器的情况下,的解决方案. 谢谢谢谢谢谢 解决方案 可能是因为服务端的T

在从服务器接收结果时发生传输级错误

问题描述 在从服务器接收结果时发生传输级错误.(provider:TCP提供程序,error:0-指定的网络名不再可用.) 解决方案 解决方案二:检查web.config连接字符串重启server关闭防火墙.解决方案三:传输量超大解决方案四:断线了?解决方案五:数据量是不是太多了,或者超时了

Twitter再度发生故障用户时间线停止更新

北京时间10月9日早间消息,据国外媒体报道,Twitter周四再度发生故障,在近一个小时的时间内,许多用户的时间线停止更新,这导致用户的所有关注者和所关注帐号看起来就像消失了一样. 不过,Twitter的搜索功能仍然能正常工作.因此,通过搜索可以看到大量用户抱怨这一问题.美国太平洋时间周四9:20(北京时间周五0:20),Twitter发布消息称,"正在调查导致许多用户时间线被延迟的问题".Twitter网站目前已恢复正常. Twitter以往经常出现故障,但近年来发生故障的频率越来越

无法在发生错误时创建会话,请检查 PHP 或网站服务器日志,并正确配置 PHP 安装最快的解决办法_php技巧

有时候用phpMyAdmin的时候会突然出现这个错误信息 "无法在发生错误时创建会话,请检查 PHP 或网站服务器日志,并正确配置 PHP 安装" 也不知道到底是怎么导致这错误信息的,而我有时候把apache重启一下,再登录就行了,有时候把机器重启也可以 但今天2种方法都试了,还是不行,我的登录URL是 http://computer-name:8080 然后我尝试着使用 http://127.0.0.1:8080 进行登录,结果就可以了... 使用127.0.0.1登录成功后,退出,

《Effective Debugging:软件和系统调试的66个有效方法》一第5条:在能够正常运作的系统与发生故障的系统之间寻找差别

第5条:在能够正常运作的系统与发生故障的系统之间寻找差别 我们通常都能够同时访问这样两个系统,其中一个是发生故障的系统,另一个是与之相似但却可以正常运行的系统.当我们实现了某项新功能.更新了某些工具或基础组件,或是把系统部署在某个新的平台上面时,就可能会遇到新系统无法正常运行的问题,此时如果旧系统依然正常,那么我们通常可以通过寻找(下面就会讲到如何寻找)或尽量缩小(参见第45条)新旧两个系统之间的差别来锁定问题的原因.之所以能根据新旧系统间的差距来进行调试,其原因在于:尽管各人所经历的问题有所不

《Effective Debugging:软件和系统调试的66个有效方法》——第5条:在能够正常运作的系统与发生故障的系统之间寻找差别

第5条:在能够正常运作的系统与发生故障的系统之间寻找差别 我们通常都能够同时访问这样两个系统,其中一个是发生故障的系统,另一个是与之相似但却可以正常运行的系统.当我们实现了某项新功能.更新了某些工具或基础组件,或是把系统部署在某个新的平台上面时,就可能会遇到新系统无法正常运行的问题,此时如果旧系统依然正常,那么我们通常可以通过寻找(下面就会讲到如何寻找)或尽量缩小(参见第45条)新旧两个系统之间的差别来锁定问题的原因. 之所以能根据新旧系统间的差距来进行调试,其原因在于:尽管各人所经历的问题有所