我正在开发 Quarkus 应用程序,我想知道我应该使用的 REST 客户端数量是否有建议的限制。
具体而言,我担心的是:
此外,我的应用程序中的 REST 客户端不是响应式的。
在 Quarkus 中是否有管理多个 REST 客户端的最佳实践或指南?
实际上,在 Quarkus 应用程序中,您可以定义的 REST 客户端数量没有限制。当然,根据应用程序使用的内存量、处理能力的强大程度以及应用程序运行时环境的网络能力,会出现一些实际限制。
以下是一些注意事项:
内存和资源限制:平均而言,每个 REST 客户端都需要内存来存储配置、连接池以及 HTTP 请求和响应的维护。大量 REST 客户端定义显然会增加使用的内存,如果处理不当,将会减慢应用程序的速度。
网络连接:每个 REST 客户端都保持与各种服务的开放连接,特别是在实现连接池的情况下。由于系统中有许多实例,这会导致资源匮乏,这在网络能力较差的区域可能会加剧。
超时和连接限制:Quarkus 允许在每个客户端的基础上配置连接限制和超时,以帮助管理性能和资源。您可以通过调整这些配置来对具有多个 REST 客户端的应用程序进行性能优化。
Quarkus 运行时行为:Quarkus 对 HTTP 客户端使用反应式模型(使用
Vert.x
),该模型是针对非阻塞操作而设计和优化的。这使得多个 REST 客户端的处理非常高效,尽管实际性能取决于一般负载和使用模式。
配置复杂性:管理大量 REST 客户端的配置可能很复杂,因此必须有效地构建它们。 Quarkus 支持 REST 客户端的配置 - 无论是全局还是单独,这肯定有助于维护大量客户端配置。
一般来说,只要资源得到监控和优化,并且有良好的连接管理,Quarkus 应用程序应该能够支持大量 REST 客户端,而没有任何硬性限制。