我的公司大约有 30-40 名开发人员,他们都在从事同一个网站开发项目。该项目分为许多模块。我的问题是每个开发人员都必须运行自己的 JBoss 来运行他们的 Java 代码。他们使用 Ant 构建 Ear 文件并将其部署到在本地桌面上运行的 JBoss 上。这需要大量内存,并会降低桌面速度。
我们是否可以在不同的服务器机器上运行 JBoss,并且所有开发人员都使用这台机器同时运行和测试他们的代码?
您可以设置像Jenkins这样的持续集成服务器。 有了詹金斯,你就有了不同的“项目”。每个项目都会构建代码并运行 JBoss 的实例。
使用 Jenkins,您可以为每个开发人员拥有不同的项目(如果这是您想要的),并且每次开发人员签入代码时,您都可以获得 Jenkins 编译和运行单元测试的额外好处。
这是可能的。您可以通过在特定 IP 上运行 JBOSS 应用程序服务器来实现此目的。为此,您必须使用 ./run.sh -b 后跟要运行应用程序的计算机的 IP 地址服务器。这样您的服务器就准备好了。现在每个客户端都必须借助该 IP 地址连接到服务器。为此,您可以将环回地址 (127.0.0.1) 替换为运行应用程序服务器的 IP 地址。
你可以,但如果有很多开发人员在一起,这可能会变得很棘手。
可以运行 jboss 的单个实例,但是如果不同的开发人员处理相同的代码,您会遇到热部署、减慢工作和交叉污染的问题,或者没有热部署,在这种情况下必须关闭服务器每次部署/更改应用程序时。在测试环境中这效果不太好。
另一种方法是为每个开发人员运行一个单独的实例来运行测试,但这可能会在金钱和服务器资源方面变得非常昂贵。当您尝试合并来自这些不同环境的更改时,您也会遇到一场噩梦。
一些好的组织可能会有所帮助。我们运行三层:开发、登台、生产。开发纯粹是为了您的开发人员。错误跟踪和测试在暂存阶段进行,而生产则用于用户和客户评估(假设产品尚未推出)。使用良好的存储库来编码从本地计算机到开发的更改,然后管理员将更改组滚动到暂存。它并不能真正解决本地计算机上的内存问题,但我想我会尝试帮助解决一些企业级的问题。
一个快速解决办法是在每台机器上放置大量内存,无论如何它都非常便宜。然后将服务器内存设置设置得更高。这将稍微减少你的 CPU 负载,并减少你因太多热部署而看到可怕的永久错误的次数
通过使用特定 IP (./run.sh -b [IP_ADDRESS]) 运行它,在单独的计算机上设置共享 JBOSS 服务器,以便所有开发人员都可以远程部署和测试代码。这可以减少本地桌面负载并避免部署冲突。或者,考虑使用像 Jenkins 这样的 CI 工具来自动化构建和测试。