要限制Spring Boot接口的并發數,可以使用線程池來控制并發訪問。可以通過配置Spring Boot的線程池來限制并發數。
# 設置核心線程數
server.tomcat.max-threads=50
# 設置最大線程數
server.tomcat.max-connections=200
@Configuration
public class ThreadPoolConfig {
@Bean
public TaskExecutor taskExecutor() {
ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
// 設置核心線程數
executor.setCorePoolSize(50);
// 設置最大線程數
executor.setMaxPoolSize(200);
// 設置隊列大小
executor.setQueueCapacity(100);
// 設置線程池中線程的名稱前綴
executor.setThreadNamePrefix("my-thread-pool-");
// 設置線程池中線程的空閑時間,超過此時間會被回收
executor.setKeepAliveSeconds(60);
// 設置線程池中的等待時間
executor.setWaitForTasksToCompleteOnShutdown(true);
// 設置線程池中的等待時間
executor.setAwaitTerminationSeconds(60);
return executor;
}
}
@RestController
public class MyController {
@Autowired
private TaskExecutor taskExecutor;
@GetMapping("/my-api")
@Async("taskExecutor")
public void myApi() {
// 接口邏輯
}
}
通過以上配置,可以限制Spring Boot接口的并發數。