我正在研究企业Java应用程序,该应用程序已经具有很多工具/框架,例如Struts,JAX-RS和Spring MVC。它包含捆绑在.war文件中的UI和REST端点。该项目在不断发展,我们正在淘汰旧的工具,力求仅使用Spring MVC / Webflux。
应用程序正在对数百万个XML / JSON记录执行搜索,并且最近搜索引擎已从Marklogic切换到Elasticsearch。
我们已经注意到,在使用量不大(在2-4个应用程序节点上高达1.7k rpm)的生产环境中,某些端点上的响应时间随着时间而增加。Elasticsearch有增长的空间,并且没有任何迹象表明存在巨大的负担。因此,当前平均响应时间超过3秒而不是常规的[[200-300毫秒。现在,我们必须像一两周那样重新启动/替换prod实例。[我试图使用async-profiler获取CPU和堆火焰图,但是由于我们拥有许多可用的功能,因此每次配置时负载配置文件都在变化,因此我无法真正比较图形随时间的变化。
您能为我在代码中找到适当位置的一些策略/方法提供建议吗?
我正在研究企业Java应用程序,该应用程序已经具有很多工具/框架,例如Struts,JAX-RS和Spring MVC。它包含捆绑在.war文件中的UI和REST端点....