如何在同一台机器上运行 2 个(或更多)Wildfly 实例?
Posted
技术标签:
【中文标题】如何在同一台机器上运行 2 个(或更多)Wildfly 实例?【英文标题】:How to run 2 (or more) Wildfly instances on the same machine? 【发布时间】:2018-03-23 16:32:29 【问题描述】:我想通过运行 2 个独立的 Wildfly 实例来模拟 2 个服务器。当您不想在同一个实例上部署所有 WAR,然后只能将它们关闭并一起启动时,这很有用。
我正在使用带有 JBoss 插件的 Eclipse,在“服务器”视图中,我希望有 2 个 Wildfly 服务器,我可以分别同时停止和运行它们。我该怎么做?
【问题讨论】:
【参考方案1】:可以复制 Wildfly 安装文件夹,但这会占用更多空间,并且每次更改都需要更新两者。相反,可以共享根文件夹并只创建 2 个独立的:
-
在安装文件夹中,从默认文件夹(或使用默认文件夹之一)创建新的
standalone1
和 standalone2
文件夹。
在那里,您可以在deployments
文件夹中选择您需要的任何部署。
为了不冲突端口,必须更改其中一个独立的configuration/standalone.xml
,如here所示:将数字从0更改为200等其他值
port-offset="$jboss.socket.binding.port-offset:200
现在转到 Eclipse 并在“服务器”视图中创建一个新服务器。给它起一个合适的名字,然后点击下一步。
在底部下拉菜单中选择create new runtime
,然后点击下一步。
给它一个合适的运行时名称,并在Server base directory
中选择您想要的独立文件夹名称,如上面的standalone1
。
然后只需在那里部署该特定实例所需的任何文件。
对具有不同偏移量的其他实例执行相同的操作(在上面的 1 个实例中,将在 8080 处,另一个在 8280 处)。
【讨论】:
我想知道,这是最好的方法吗?我的意思是,对于生产环境。如果您对此有更多想法,我很乐意阅读。 @vinyoliver 我不知道这是否是生产的最佳。有哪些更好的选择? 我最终做了一些非常接近你的生产答案的事情。我们有几个应用程序,每个应用程序都在自己的 Wildfly 实例上运行,我们还有一个 nginx 服务器作为反向代理。我通常做的是每个服务器/实例一个应用程序,但这个项目有这个限制,我们必须为多个应用程序使用同一服务器【参考方案2】:完成上述标记建议的方法后,我们必须运行wildfly
在 Windows 中
standalone.bat -Djboss.server.base.dir=D:/AppServer/wildfly-10.1.0.Final/standalone1
standalone.bat -Djboss.server.base.dir=D:/AppServer/wildfly-10.1.0.Final/standalone2
在 Linux 中
./standalone.sh -Djboss.server.base.dir=/Users/kyle/servers/wildfly-8.2.0.Final/standalone1
./standalone.sh -Djboss.server.base.dir=/Users/kyle/servers/wildfly-8.2.0.Final/standalone2
【讨论】:
以上是关于如何在同一台机器上运行 2 个(或更多)Wildfly 实例?的主要内容,如果未能解决你的问题,请参考以下文章
在同一台机器上同时运行 Master 和 Agent 时,Jenkins 如何操作资源?