小编a4d*_*v92的帖子

Spring 中的并行请求数与 http-nio-8080-exec 线程数

我想在我的控制器中测试并行请求。我知道默认情况下Spring可以处理200个并行请求,我们可以通过修改这个属性来改变它server.tomcat.max-threads

我对这个值进行了一些研究,发现了有趣的事情:当我启动应用程序时将其设置为 3 时,我看到正在创建 3 个线程:http-nio-8080-exec-1,2,3 当我将其设置为 5 时,我看到有 5 个这样的线程。它一直持续到 10,并在 10 处停止。当我将其设置为 15 时,仍然有 10 个 name 线程http-nio-8080-exec。有人能解释一下为什么它永远不会超过10吗?

如果我会让控制器像这样

@GetMapping("test")
public String test(@RequestParam("skip") boolean skip) throws InterruptedException {
    if(!skip) {
        System.out.println("I'm starting waiting");
        Thread.sleep(10000);
        System.out.println("I stopped waiting");
    }
    return "dd";
}
Run Code Online (Sandbox Code Playgroud)

当有server.tomcat.max-threads=200

发出 10 个这样的请求:http://localhost:8080/test?skip=false

和同时第 11 个请求:http://localhost:8080/test?skip=true

前 10 个请求应在返回响应之前等待 10 秒,但第 11 个请求应立即返回 - 问题是第 11 个请求也会等待,因此它被阻止。有人可以解释它是如何工作的吗?如果我server.tomcat.max-threads设置为 200,那么我希望能够处理 200 个独立请求,对吗?

java concurrency multithreading

6
推荐指数
1
解决办法
8883
查看次数

Spring Boot + Maven + Docker + IntelliJ 的开发流程

我想就标题中提到的堆栈应用程序的开发工作流程寻求一些建议。在我改用 Docker 之前,我所要做的就是:

  1. 前往 start.spring.io 并下载项目启动器
  2. 将其导入到intelliJ中
  3. 开发功能,点击绿色箭头启动应用程序或点击红色方块停止并在代码的每次更改时重复此操作

现在,当我切换到 docker 时,在第 2 步之后,我执行以下操作:

  1. 创建 Dockerfile 和 docker-compose.yml(我在其中启动我的应用程序和 mysql 服务)。
  2. 右键单击 docker-compose 并点击运行。然后它构建我的应用程序映像(我在运行配置中使用 --build 标志,因此每次我在 docker-compose 上运行时它都会构建映像)并启动两个服务:app 和 mysql,一切正常。

问题是当我在代码中更改某些内容时,我必须:

  1. 手动执行 mvn clean 和 install 步骤,在 /target 文件夹下生成新的 jar
  2. 然后停止之前的 docker compose 并再次运行它。然后它根据 /target 中的内容构建新图像

我宁愿有像一键解决方案之类的东西,就像我开始使用 docker 之前一样。因此,当我更改代码时,我只需按一个按钮,就会生成新图像并在应用所有更改的情况下运行。是否可以?我错过了什么吗?您能告诉我您的工作流程是否与我的相似?也许您可以推荐一些工具或不同的配置?

java intellij-idea maven docker docker-compose

5
推荐指数
1
解决办法
3472
查看次数

是否可以在一台爱好测功机上运行两个应用程序?

我在 GitHub 学生包中的 heroku 上有 161 美元的平台积分,可以用于一项爱好 dyno

Heroku 优惠为两年内免费提供一 (1) 个 Hobby Dyno,该优惠将计入您的发票中,作为 Hobby Dyno 7 美元的折扣。

我已经部署了一个 Spring 应用程序并将其 dyno 更改为爱好。我的问题是,是否有一种方法可以部署第二个 Java 应用程序并将其设置为使用为第一个应用程序分配的相同测功机?

现在我有一款有爱好测功机的应用程序和一款使用免费测功机的应用程序。我在互联网上读到,人们说一个 dyno 只允许使用一个应用程序,Heroku 会向我收取第二个应用程序的费用,但也有这个线程“ Hobby”Heroku 计划允许使用多少个应用程序?这表示我可以为每个爱好 dyno 拥有多个应用程序。

那么真相是什么呢?

heroku

2
推荐指数
1
解决办法
4498
查看次数