我怎样才能减少Hybris服务器的启动时间?

时间:2016-02-09 10:22:37

标签: hybris

我正在开展 Hybris项目等待350 - 550秒对于单个 Hybris服务器启动非常耗时,即使只是代码中的一点修改/错误类型。是否可以通过仅运行我修改过的扩展程序或其他任何方式来减少 时间?那将是一件好事。

12 个答案:

答案 0 :(得分:11)

JRebel上的

+1。它适用于hybris。当然,它很昂贵,但您可以快速获得ROI节省。初始负载较慢,但一旦启动它就会节省大量时间。

要做的另一件事是查看localextensions.xml并确保只有项目所需的扩展名在那里。这对启动时间有很大影响。

在运行平台时,通过使用HSQL以外的数据库,我也看到了合理的启动时间改进。我在本地使用MySQL。

另一件事是确保你在你正在使用的机器上得到足够的咕噜声。我刚刚在这里启动了这个平台,即使JRebel运行它,也只有#&花了200秒。我建议查看四核CPU和SSD,以缩短本地开发的时间。

答案 1 :(得分:6)

您将在本文中找到所有说明,以便将服务器启动时间提高到50%

  1. 禁用Cronjobs
  2. 删除未使用的租户
  3. 修改tomcat startStopThreads
  4. 从扫描中排除部分罐子
  5. https://hybrismart.com/2016/12/27/speed-up-server-start-time/

答案 2 :(得分:2)

我建议使用Jrebel - 它就像Hybris的魅力一样,并在运行时重新部署bean。主要的优点是它能够在不重新部署的情况下重新配置Spring bean,因此它确实可以节省很多时间重启服务器。

有一个开源替代品,但它不适合我,但值得关注它们:DCEVMfakereplace

答案 3 :(得分:1)

我建议您禁用在开发过程中使用的一些重型扩展程序,并仅启用您正在处理的此扩展程序以及必要的扩展程序。我不知道,你正在使用哪个hybris版本,但据我所知,会有功能,这应该可以解决你在平台的进一步版本中的问题,但我不是百分之百确定。

答案 4 :(得分:1)

我看到很多评论,因为人们无法设置Jrebels的任何开源替代方案。

Hybris服务器的启动时间无法大幅减少,尤其是在需要大约20到30分钟的Windows上(如果您还使用标准扩展名构建了一些自定义扩展名)。

唯一好的解决方案是使用JRebels,但是JRebel的缺点是它太昂贵了。可以使用DCEVM + HotSwap替代JRebel。 Here are the Steps to setup HotSwap.

JRebel或HotSwap实际做什么? 它将代码更改加载到实时运行的服务器中。您无需为每次代码更改而重新启动服务器。

如果您在设置该设置时遇到任何问题,请告诉我。

答案 5 :(得分:0)

您还要查看https://wiki.hybris.com/display/partnerblog/2013/09/23/Avoid+restarting+the+server+as+much+as+possible。虽然这不是您问题的直接答案,但它说明了如何避免服务器重启。

答案 6 :(得分:0)

感谢大家,谁写了答案! :) 实际上我找到了一个非常好的解决方案来解决我自己的问题:

  • 我将platform / tomcat / conf文件夹中的context.xml修改为可重新加载并观看WEB-INF文件夹
  • 我使用IntelliJ来做开发工作,它有一个编译东西的选项,比如单个java文件或整个包/模块/扩展。所以我修改了WEB-INF / classes的编译路径,以及所有。

现在,如果我启动hybris服务器并在项目中修改(或创建)文件,我只需在修改后的软件包上运行编译,或者仅在单个当前文件上运行,几秒钟后Tomcat重新加载修改后的内容目前的延期。

更新:由于Hybris扩展程序无法使用" webapp"其他扩展的一部分,似乎无法重新加载任何依赖。 所以我的解决方案只适用于"仅限webapp"扩展。

答案 7 :(得分:0)

请在local.properties文件中使用此属性

#Performance mode
build.development.mode=false
tomcat.development.mode=false
storefront.granule.enabled=true
addonfilter.active=false

答案 8 :(得分:0)

尝试在localextension.xml中只放置必需的扩展名 您可以通过local.properties文件禁用Solr服务器来阻止它自动启动。
如果您在intel-i3 / AMD处理器上运行hybris服务器,请以最低8 GB RAM升级到intel-i5。

答案 9 :(得分:0)

因此,自从过去一年以来,我一直在使用JRebel和Hybris。

虽然我无法使用我的IDE配置它(我确信有一种简单的方法),但用法非常简单。

在我修改了任何java文件或弹簧配置之后,在与我运行服务器的终端不同的终端中,我导航到我修改了文件的扩展,然后执行ant build。修改后的文件由正在运行的服务器选取(您可以看到在服务器控制台中拾取的新文件/配置)。

关于许可证,我使用来自https://my.jrebel.com/的myJRebel许可证,该许可证需要社交媒体登录才能获得许可证密钥。

设置步骤 -

  1. 下载JRebel库(独立zip)
  2. 提取到您的首选位置。我的是C:\ Monil \ Tools \ jrebel
  3. 将以下内容添加到local.properties(相应地修改)

    tomcat.debugjavaoptions=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,address=8000,suspend=n -Xverify:none -agentpath:c:/Monil/Tools/jrebel/lib/jrebel64.dll -Xbootclasspath/p:${HYBRIS_TEMP_DIR}/hybris/rebelboot.jar

  4. 请注意,当您执行ant all并启动服务器时,${HYBRIS_TEMP_DIR}/hybris/rebelboot.jar jar会自动直接添加到hybris temp。

答案 10 :(得分:0)

尝试Linux(Ubuntu)而不是Windows。性能差异令人惊叹。它类似于构建时间的1/4和服务器启动的1/2时间。我希望我早点弄清楚了!

答案 11 :(得分:0)

除了使用 JRebel 减少重启次数(如之前的答案中提到的)之外,您正在使用的操作系统也很重要。 如果您在 Windows 计算机上工作,我强烈建议您使用 unix 系统。因此,我认为您有以下选择:

如果您不熟悉 Docker(需要一些学习),请尝试在 Windows 上使用 WSL2。

与普通的 Windows 方法相比,在这里我可以将构建和启动时间加快近 3 倍。

希望这能帮助您加快工作速度:-)