数据库与 Java ee 之间的通信
Communication between databases with Java ee
我们有一个客户有 3 个不同数据库的商店。在每家商店里都有一只野蝇 运行 一些在它们之间进行通信的网络服务。每个具有 10/30 行的 json 请求平均花费 1 秒。每只野蝇使用 1.5 GB 的 RAM。我知道内存在 Java 中始终是一个问题,但是我可以使用一些像 Javalin 或微服务这样的微框架而不是 java ee 应用程序服务器来更经济吗? node.js 是获得更好性能的选项吗?
嗯,首先你可以修剪你的 WildFly 安装或尝试 Quarkus :)
在您开始研究可能需要进行重大重写的不同架构之前,请找出所有时间都花在了哪里。在 WildFly 服务器上设置分析。首先在一个人身上这样做,然后有一些电话进来。检查在堆栈的各个部分花费了多少时间。对 Web 服务的一次调用是否处理得相当慢?然后看看时间去了哪里。它可能是数据库访问。一个这样的呼叫一旦进入服务器本身是否很快得到处理?那么你最好的选择就是你在网络层上的损失时间。
检查网络流量。为此,您可以使用 Wireshark 或类似的跟踪工具。查看请求进入和响应发出之间实际经过了多少时间。那是不是很慢,但 Wildfly 本身的处理速度似乎足够快?也许会有一些开销(比如安全)。请求和响应之间的时间是否很快?您肯定将网络视为罪魁祸首。
最终,您可能需要在所有三台服务器上同时启用分析和网络跟踪,以查看正在发生的情况,或者查看两台服务器的每种组合。结果可能只有其中一个是瓶颈。如果您有服务器 A
、B
和 C
,从它的声音来看,您的设置可能会导致从 A
到 B
的调用也需要一个在某些结果可以返回到 A
之前从 B
调用到 C
。如果是这种情况,难怪您会看到一些严重的延迟。
但在开始决定更改整个框架和不同的编程语言之前,请衡量并找到问题的根源。否则,您可能会在某件事上投入大量时间而根本无济于事。如果架构存在根本性缺陷,您需要考虑一种不同的方法。如果这仍处于原型设计阶段,那会容易得多。
我们有一个客户有 3 个不同数据库的商店。在每家商店里都有一只野蝇 运行 一些在它们之间进行通信的网络服务。每个具有 10/30 行的 json 请求平均花费 1 秒。每只野蝇使用 1.5 GB 的 RAM。我知道内存在 Java 中始终是一个问题,但是我可以使用一些像 Javalin 或微服务这样的微框架而不是 java ee 应用程序服务器来更经济吗? node.js 是获得更好性能的选项吗?
嗯,首先你可以修剪你的 WildFly 安装或尝试 Quarkus :)
在您开始研究可能需要进行重大重写的不同架构之前,请找出所有时间都花在了哪里。在 WildFly 服务器上设置分析。首先在一个人身上这样做,然后有一些电话进来。检查在堆栈的各个部分花费了多少时间。对 Web 服务的一次调用是否处理得相当慢?然后看看时间去了哪里。它可能是数据库访问。一个这样的呼叫一旦进入服务器本身是否很快得到处理?那么你最好的选择就是你在网络层上的损失时间。
检查网络流量。为此,您可以使用 Wireshark 或类似的跟踪工具。查看请求进入和响应发出之间实际经过了多少时间。那是不是很慢,但 Wildfly 本身的处理速度似乎足够快?也许会有一些开销(比如安全)。请求和响应之间的时间是否很快?您肯定将网络视为罪魁祸首。
最终,您可能需要在所有三台服务器上同时启用分析和网络跟踪,以查看正在发生的情况,或者查看两台服务器的每种组合。结果可能只有其中一个是瓶颈。如果您有服务器 A
、B
和 C
,从它的声音来看,您的设置可能会导致从 A
到 B
的调用也需要一个在某些结果可以返回到 A
之前从 B
调用到 C
。如果是这种情况,难怪您会看到一些严重的延迟。
但在开始决定更改整个框架和不同的编程语言之前,请衡量并找到问题的根源。否则,您可能会在某件事上投入大量时间而根本无济于事。如果架构存在根本性缺陷,您需要考虑一种不同的方法。如果这仍处于原型设计阶段,那会容易得多。