环境 :
> Java EE webApp
> JDK:1.6,
> AS:Websphere应用服务器7,
> OS:redhatzLinux
我不是一个websphere管理员,我被要求开发一种方法或脚本来解决下面的问题:
我有一个集群,有三个节点NodeA NodeB和NodeC.我的应用程序在这些集群上运行我想在这些节点上部署我的应用程序,这样我就不需要立即将它们全部删除.现在,部署是以这种方式完成的:我们晚上来自控制台一次性停止所有服务器.然后我们在与部署管理器位于同一台机器上的主节点上安装应用程序,然后我们进行同步并逐个备份所有服务器.
我被要求做的是我们升级应用程序或安装新的ear文件,不要把所有东西都关闭,因为这会导致应用程序停机.有没有办法实现这一点. WAS 7是一款非常成熟的产品,我相信必须有一种方法可以做到这一点.
我查看了文档/教程,我们可以选择“更新”,我们选择应用程序(来自Apllications> websphere企业应用程序)并选择更新,然后选择单选按钮“替换整个应用程序”和单选按钮“本地文件系统”和指向新的ear文件.但在这种情况下,文档说它会在更新时关闭所有服务器.和以前一样.没有在线部署.
我是一名java程序员,所以我想用什么工具来解决这个问题
告诉我这是否是一个问题:
1)我们打倒了NODEA
2)我们从群集中删除NODEA(通过按删除节点按钮或使用removeNode.sh)
3)在NODEA上安装新的Ear(我们可以在同一个管理控制台中执行此操作吗?还是通过shell脚本或jython执行此操作,或者可以像独立服务器一样)
3)然后我们再次启动它,然后将其添加到集群中.
现在我们有NODEA的新应用程序,而NODE B和NODEC使用旧的应用程序版本.
然后我们关闭了NODEB
从群集中删除NODEB
在NODEB上安装applciation
再次启动它
将其添加回群集
现在我们有两个带有新应用程序的节点和带有旧应用程序的NODEC
我们为NODEC尝试相同的过程.
这会有用吗有没有人试过这个.你能想到什么问题可能会发生.
我将非常感谢来自这里的任何反馈.我相信在这个论坛上有经验丰富的人才.我不认为这是一个罕见的问题,我相信这是任何组织都希望具有高可用性要求的东西.
在此先感谢您的帮助.
赛义德…
最佳答案 这可能是
How can i do zero down time deployment on cluster environment?的重复.这基本上是我对这个问题的回答:
更新应用程序后,您可以使用“Rollout Update”功能.您可以使用此功能自动执行以下任务,以便在保持高可用性的同时将更改传播到所有部署目标(假设您有一个水平集群,以便集群成员存在多个节点,而不是在更新后保存和同步节点节点,听起来像你这样做):
>将会话更改保存到主配置
>对于群集中的每个节点(一次一个,以启用连续可用性):
>停止节点上的集群成员
>同步节点
>启动应用程序服务器(自动启动应用程序)