#java #performance #rest #optimization #time
#Ява #Производительность #остальное #оптимизация #время
Вопрос:
У меня есть API, написанный на Java и spring boot. Время отклика очень важно для конечных пользователей. Среднее время работы API составляет lt; 1 sec
. Проблема возникает, когда 10%
звонки дают высокое время отклика gt; 3 sec
. Вот график, взятый из Кибаны-
Я проверил графики JVM, они выглядят согласованными. Никакого скачка в использовании процессора, памяти или количестве потоков. API просто делает 2-3 вызова базы данных, размер ответа почти фиксирован. Итак, есть идеи, в чем может быть причина этого и как я могу обеспечить согласованность времени отклика?
Комментарии:
1. Я думаю, вам нужно разбить его еще глубже и выяснить, где вы теряете время, когда вы это делаете. Тогда вы, возможно, сможете понять причину этого.
2. Если честно, 1 секунда уже кажется большим временем. Трудно сказать, не зная больше о вашей настройке, и устранение неполадок в сложных системах, подобных этой, вероятно, выходит за рамки переполнения стека.
3. Существует несколько способов устранения неполадок. Я бы начал с использования приличного профилировщика в вашем приложении, чтобы выяснить, где находятся горячие точки.
4. Какой тип API вы закодировали? В некоторых случаях
Websocket
это отличная альтернатива, потому что здесь у вас более низкая задержка, и вы можете сами решить, с какой скоростью вы хотите выполнять свои запросы