首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >关于如何使用JBoss 5进行热部署的思考

关于如何使用JBoss 5进行热部署的思考
EN

Stack Overflow用户
提问于 2015-02-27 15:52:07
回答 1查看 31关注 0票数 0

我在试着看看这是否可能。我将首先介绍应用程序当前如何运行的背景信息。

应用程序部署到4个单独的节点(使用'all‘配置)。ServerA上有2个节点,ServerB上有2个节点,分别命名为node1、node2、node3、node4。该应用程序位于运行apache和mod_jk以重定向通信量的web服务器后面。假设1.0.0版本当前已部署。我将尝试部署1.0.1,这将只有一个小的改变。

其目标将是取消node4,将1.0.1版本部署到node4 (同时node1-node3仍在启动和运行)。他们将共享同一个数据库,理论上应该是可以的,只要我们的代码不要求我们更新数据库中的任何内容。下一步将是使用apache + mod_jk引导通信量,使其只使用负载平衡节点1-node1 3。node4将被直接访问。运行1.0.1版本的node4将被测试。Apache + mod_jk将被更改为服务于node4。版本1.0.1将部署到node1-node3。所有节点现在都应该运行版本1.0.1。

我知道这是非常高的水平,我已经面临问题(更不用说应用程序特定的问题了)。

我只想知道处理这个问题或JBoss特定问题的其他方法是什么,我可以遇到什么。

我是否应该将hotdeploy节点放在不同的集群中,然后让rest连接?

任何建议都会有帮助。谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-03-01 12:09:35

您可以利用前面有mod_jk的Apache,假设您的配置中有以下内容:

代码语言:javascript
复制
JkMount  /myapp/* workerApp
JkWorkersFile /etc/httpd/conf/workerApp.properties

与其使用名为workerApp.properties的文件,不如使用以下3个文件:

  • workerApp-部署1.属性
    • 将包含仅连接到节点4的配置。

  • workerApp-部署2.属性
    • 将包含仅连接到节点1、2和3的配置。

  • workerApp-normal.properties
    • 这将是您的实际员工文件。

现在,wokerApp.properties不是一个文件,而是一个链接,因此在正常情况下:

代码语言:javascript
复制
ln -s workerApp-normal.properties workerApp.properties

当您部署新版本时

代码语言:javascript
复制
rm -f workerApp.properties
ln -s workerApp-deploy2.properties workerApp.properties
reload apache

现在您可以在node4上部署新版本,所有请求都将通过节点1、2和3进行路由。

代码语言:javascript
复制
rm -f workerApp.properties
ln -s workerApp-deploy1.properties workerApp.properties
reload apache

在这种情况下,所有客户端都是节点4的路由器,您可以在其他节点上升级版本。当你做完之后:

代码语言:javascript
复制
rm -f workerApp.properties
ln -s workerApp-normal.properties workerApp.properties
reload apache

所有的请求都能在服务器之间得到平衡。

这还有另一个优点,例如,您可以使用不同的工作人员集来定义类似于VirtualHost的preflighttest.yourcompany.com,这样您就可以在节点4上测试新版本,然后才能在生产中有效地滚动它。

希望能帮上忙。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28769071

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档