На этот вопрос нет единого ответа, но я не знаю, где еще задать этот вопрос.
Я работаю в большой корпоративной системе, которая использует Tomcat для запуска служб REST, работающих в контейнерах, управляется kubernetes.
Tomcat, или любой другой обработчик запросов, обладает свойством «max threads», так что, если поступает достаточное количество запросов, это приводит к созданию множества потоков, если число созданных потоков достигает этого определенного предела. , он поместит дополнительные запросы в очередь (ограниченную значением другого свойства), а затем, возможно, запросы будут отклонены после того, как эта очередь заполнится.
Разумно подумать, следует ли установить для этого свойства значение значение, которое может быть достигнуто, или его следует установить равным эффективной бесконечности.
Существует множество сценариев ios, которые следует учитывать, хотя единственными интересными являются случаи, когда трафик c чрезвычайно выше, чем обычно, либо из трафика реального клиента c, либо из вредоносного трафика ddos c.
В средах управляемых контейнеров и других подобных случаях также возникает вопрос о том, сколько экземпляров, модулей или контейнеров должны запускать копии службы. Я хотел бы предположить, что вы хотели бы иметь как можно меньше из них, чтобы уменьшить дублирование ресурсов для каждого модуля, что увеличило бы среднее число потоков в каждом контейнере, но я бы предположил, что это лучше, чем распределять их по нескольким наборам. контейнеры.
Некоторые члены моей команды считают, что для свойства "max threads" лучше установить эффективное бесконечность.
Что есть разумные мысли по этому поводу?