Предполагается, что вы используете Spring Boot 2.1 и не изменили значения по умолчанию (используя Tomcat в качестве встроенного контейнера и Hikari в качестве пула соединений).
Темы обработки запросов Tomcat
Чтобы изменить количество потоков (по умолчанию tomcat уже использует 200, так зачем вам его менять!) Используйте свойства в пространстве имен server.tomcat
(они характерны для Tomcat!). Поэтому для управления используйте server.tomcat.max-threads
номер обработки запроса.
Чтобы ограничить количество одновременных HTTP-подключений, используйте server.tomcat.max-connections
(значение по умолчанию 10000). Это в основном очередь обработки, из которой потоки обработки запросов используют для выбора / кражи работы.
Количество потоков для выполнения задачи
Для управления количеством потоков, используемых по умолчанию, созданным TaskExecutor
в Spring Boot 2.1, используйте свойства в пространстве имен spring.task.execution
. Поэтому используйте spring.task.execution.pool.max-threads
, чтобы установить максимальное количество потоков для @Async
. spring.task.execution.pool.core-size
контролирует основной (минимальный) размер пула. Увеличение свойства max-threads
без ограничения размера очереди до spring.task.execution.pool.queue-capacity
не имеет никакого эффекта. Размер очереди по умолчанию не ограничен, и все это не приведет к увеличению числа потоков за пределы core-size
.
Свойства пула соединений
Наконец, укажите соединения для вашего пула соединений (по умолчанию для Hikari 10!). Используйте свойства пространства имен spring.datasource
и, в частности, свойство для вашего пула соединений (по умолчанию Hikari, поэтому значения в spring.datasource.hikari
, spring.datasource.tomcat
предназначены для пула соединений Tomcat JDBC, используемого по умолчанию в Spring Boot до 2.0). Поэтому установите spring.datasource.hikari.maximum-pool-size
, чтобы управлять максимальным количеством потоков.
Примечание
Они не имеют ничего общего друг с другом, и их также следует путать друг с другом (хотя в справочном руководстве это уже ясно, каждый из них преследует разные цели). См. Приложение A Справочного руководства Spring Boot для списка общих свойств.