环境:
我不是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尝试相同的过程。
这会有效吗?有没有人试过这个。您可以想到会发生什么问题。
我将非常感谢来自这里的任何反馈。我相信在这个论坛上有经验丰富的人才。我不认为这是一个罕见的问题,我相信这是任何组织都希望具有高可用性要求的东西。
提前感谢您的帮助。 赛...
答案 0 :(得分:2)
这可能是How can i do zero down time deployment on cluster environment?的副本。这基本上是我对这个问题的回答:
更新应用程序后,您可以使用“Rollout Update”功能。您可以使用此功能自动执行以下任务,以便在保持高可用性的同时将更改传播到所有部署目标(假设您有一个水平集群,以便集群成员存在多个节点,而不是在更新后保存和同步节点节点,听起来像你这样做):
答案 1 :(得分:0)
或者,您可以按照以下步骤操作。
从插件/负载均衡器取消注释/启用节点A.
从插件/负载均衡器中注释/禁用节点B,以停止在节点上输入流量。
对所有剩余节点重复步骤6,7,8。
此致 莱克艾哈迈德