如何在同一台机器上运行 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 个独立的:

    在安装文件夹中,从默认文件夹(或使用默认文件夹之一)创建新的 standalone1standalone2 文件夹。 在那里,您可以在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 如何操作资源?

在同一台机器上运行多个唯一的 nodejs 网络服务器

在同一台开发机器上运行多个 Netty 客户端和服务器

用于 Windows 和 Linux 的同一台机器上的套接字

如何在同一台机器上安装多个MySQL的实例(转)