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