在具有高可用性的节点的IBM Websphere 7群集中进行部署

时间:2012-03-20 10:35:25

标签: deployment distributed cluster-computing websphere-7

环境:

  • Java EE webApp
  • JDK:1.6,
  • AS:Websphere app server 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尝试相同的过程。

这会有效吗?有没有人试过这个。您可以想到会发生什么问题。

我将非常感谢来自这里的任何反馈。我相信在这个论坛上有经验丰富的人才。我不认为这是一个罕见的问题,我相信这是任何组织都希望具有高可用性要求的东西。

提前感谢您的帮助。 赛...

2 个答案:

答案 0 :(得分:2)

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

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

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

答案 1 :(得分:0)

或者,您可以按照以下步骤操作。

  1. 停止除节点A以外的所有节点代理。
  2. 从Load Balancer或Plugin注释掉或禁用节点A(因此流量不会到达节点)
  3. 部署应用程序。
  4. 只有在Nodeagent启动时,才会在节点A上同步更改。
  5. 从插件/负载均衡器取消注释/启用节点A.

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

  7. 启动Node B的nodeagent,使其同步Node上的文件更改。耳朵应用程序将在同步后停止并启动。
  8. 从插件/负载均衡器取消注释/启用Node B.
  9. 对所有剩余节点重复步骤6,7,8。

    此致 莱克艾哈迈德