2012-03-20 35 views
4

环境:部署在IBM的Websphere 7集群节点具有高可用性

  • 的Java EE Web应用程序
  • 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尝试相同的过程。

请问这项工作。有没有人试过这个。你能想到哪些问题会发生。

我很欣赏这里的任何反馈。我相信在这个论坛上有经验的人。我不认为这是一个罕见的问题,我相信这是任何组织希望获得高可用性要求的东西。

感谢您提前提供任何帮助。 Syed ...

回答

2

这是一个可能的重复How can i do zero down time deployment on cluster environment?。这里基本上是我对这个问题的回答:

更新应用程序后,您可以使用“Rollout Update”功能。更新之后,您可以使用此功能自动执行以下任务,以使更改传播到所有部署目标,同时保持高可用性(假设您有一个水平集群,以使集群成员存在多个集群成员)节点,其听起来你做):

  1. 保存会话改变到主配置
  2. 对于簇中(每个节点一次一个,以使连续的可用性):
    1. 停止节点上的群集成员
    2. Syn chronize节点
    3. 启动应用程序服务器(自动启动应用程序)
+0

@shelly感谢您的答复,有人还建议相同的,我没有尝试,但它未能在推出更新的一部分,当我点击部署更新它说:“开始部署更新“,然后”comiting主存储库“,然后”提交未能保存到主存储库“我试了两次,但没有奏效。这里可能是什么问题。 – sarmahdi 2012-03-24 13:32:12

+1

“推出更新”是在维护HA的同时更新应用程序的适当方式。至于你尝试过的具体问题,我不确定。日志中是否有任何内容,或者您​​可以提供的任何其他上下文或信息?这可能有助于提出一个单独的问题来解决该问题。 – shelley 2012-03-26 13:56:44

0

或者,你可以按照下面的步骤。

  1. 停止除节点A.所有nodeagents
  2. 注释掉或负载均衡器或插件禁用节点A(所以流量不会来的节点)
  3. 部署应用程序。
  4. 更改将仅在节点A上同步,因为其节点代理已启动。
  5. 从插件/负载均衡器取消注释/启用节点A.

  6. 从插件/负载均衡器注释/禁用节点B以停止在节点上传输流量。

  7. 启动节点B的节点代理,以便它将同步节点上的文件更改。耳朵应用程序将停止并在同步后启动。
  8. 从插件/负载均衡器取消注释/启用节点B.

对所有其余节点重复步骤6,7,8。

问候, Laique艾哈迈德