【问题标题】:Sent many requests asynchonized to http server but it only serves a few request at a time向 http 服务器发送了许多异步请求,但它一次只处理几个请求
【发布时间】:2020-05-26 02:55:13
【问题描述】:

我正面临这个问题: 我有一个灰色的嵌入式 http 服务器正在运行。通过向服务器发送 200 个异步请求(在 java 中使用 ExecutorService),我认为它会一次处理所有这些请求,但我发布服务器一次只处理 8 个请求并且没有抛出错误。请给我一个解释。我有什么误解吗?

【问题讨论】:

  • 尝试使用服务器中的连接池并配置/增加连接数,这应该会提高性能。以下链接可以为您提供起始上下文:docs.jelastic.com/jdbc-connection-pool
  • 似乎连接池用于控制与db的连接,但http sv。其实我试过这个配置“jersey.config.client.async.threadPoolSize”但是没有效率

标签: java jersey grizzly


【解决方案1】:

您确定所有请求都已到达服务器吗?程序处理完后你会释放资源吗?如果您同时发送多个请求并超出程序的容忍限制,您将等待。这些控制你都做了吗?

【讨论】:

  • 对不起,我不太明白。我的 http 服务器服务于 REST API,所有配置都设置为默认值。我认为对于任何传入的请求,服务器都会创建一个新线程来执行并释放所有分配的资源。能解释清楚点吗?
  • 我确定所有请求都已到达服务器。在客户端,我看到所有请求都已发送,但在服务器端,我看到服务器一次只服务几个请求,直到所有请求都得到服务
  • 可以参考官方文档(docs.oracle.com/javase/7/docs/api/java/util/concurrent/…)。 ExecutorService如果不受控制会拒绝新的任务,
  • 啊,我刚刚发现了一个瓶颈问题,非常感谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-11-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-09-29
  • 2018-06-23
相关资源
最近更新 更多