我们有一个具有不同数据库的商店。在每个商店中,有一个野生蝇运行一些网站服务,它们之间可以在它们之间进行通信。每条带有10/30行的JSON请求平均花费1秒。每个野生蝇都使用1,5 GB的RAM。我知道内存始终是Java中的问题,但是使用Javalin或Microservices而不是Java EE App Server(例如Javalin或Microservices),我可以更经济地经济吗?和node.js将是更好的性能的选择?
在开始研究其他架构之前,这可能会使重大重写,请找出所有时间的去向。在Wildfly服务器上设置分析。首先这样做,然后打来一些电话。检查堆栈的各个部分花费了多少时间。对Web服务的呼叫是否相当缓慢?然后看看那个时间的去向。它可能是数据库访问。一旦进入服务器本身就可以很快处理这样的呼叫吗?那么最好的选择是您在网络层上的损失时间。
检查网络流量。您可以使用Wireshark或类似的跟踪工具为此。查看提出的请求与响应出现之间的实际时间。这速度慢,但是野生蝇本身的处理似乎足够快吗?也许有一些开销正在进行(例如安全性)。请求和响应之间的时间非常快吗?您肯定会将网络视为罪魁祸首。
最终,您可能需要同时在所有三个服务器上进行分析和网络跟踪活动,以查看正在发生的事情,或者对于两个服务器的每种组合。可能只有一个是瓶颈。而且,如果您有服务器A
,B
和C
,则从其声音中,您的设置可能会导致A
到B
的呼叫,也需要从B
到C
的呼叫,然后才能将某些结果返回到A
。如果是这种情况,那么您可能会看到一些严重的延迟。
,但在决定更改整个框架和不同的编程语言之前,请测量并找到问题的根。否则,您可能会花费大量时间来进行任何改进。如果架构从根本上存在缺陷,则需要考虑一种不同的方法。如果这仍然处于原型阶段,这将变得更容易。
好吧,首先,您可以修剪野生蝇安装或尝试quarkus:)