我们有一个客户,有3个不同的数据库商店。每家商店都有一只野蝇在运行一些在它们之间进行通信的them服务。具有10/30行的每个json请求平均花费1秒。每只野蝇都使用1,5GB的RAM。我知道在Java中内存总是一个问题,但是如果使用一些微框架,比如Javalin或microservices,而不是java应用服务器,我能更经济吗?而node.js是提高性能的一种选择吗?
发布于 2019-03-20 09:57:44
在您开始研究不同的体系结构(这可能会导致一次重大重写)之前,先找出所有的时间都在向何处去。在WildFly服务器上设置分析。从一开始做,然后有一些电话进来。检查在堆栈的各个部分花费了多少时间。对web服务的一个调用处理得很慢吗?那就看看时间会怎样。可能是数据库访问。一个这样的调用在服务器本身出现后是否处理得相当快?那么你最好的选择就是在网络层上浪费时间。
检查网络流量。您可以使用Wireshark或类似的跟踪工具。查看请求传入和响应发出之间的实际时间。这是不是很慢,但野生蝇本身的处理速度似乎足够快了?也许会有一些开销(比如安全)。请求和响应之间的时间很短吗?你肯定是把网络当成罪魁祸首。
最终,您可能需要在所有三台服务器上同时启用分析和网络跟踪,以查看发生了什么,或者两台服务器的每个组合。结果可能只有其中一个是瓶颈。如果您有服务器A、B和C,从它的声音来看,您的设置可能会导致从A到B的调用也需要从B到C的调用,然后才能将某些结果返回给A。如果是这样的话,难怪你会看到一些严重的延迟。
但是,在决定改变整个框架和一种不同的编程语言之前,请先测量并找到问题的根源。否则,你可能会花很多时间在一些根本没有改进的事情上。如果体系结构存在根本缺陷,则需要考虑一种不同的方法。如果这仍然处于原型开发阶段,那么就会简单得多。
发布于 2019-03-20 09:34:08
首先,您可以修剪您的WildFly安装或尝试Quarkus :)
https://stackoverflow.com/questions/55253214
复制相似问题