Сценарий: у меня есть одно Java-приложение с сервлетом загрузки файлов. Это приложение, размещенное в tomcat 9.0.13, настроено за Apache 2.4 с разъемом AJP.
В случае загрузки больших файлов, я вижу, скорость медленная. Поэтому я проверил в случае соединителя Tomcat.
- В соединителе AJP загрузка файла 100 МБ занимает в среднем 12-16 секунд
- В коннекторе HTTP 100 МБ загрузка файла занимает в среднем 4-7 секунд
Для строк ниже AJP я добавил в файл конфигурации Apache
<location /filescrum1>
AddOutputFilterByType DEFLATE text/html text/javascript text/css text/xml application/javascript
ProxyPass balancer://filescrum1Cluster/filescrum1 timeout=120 stickysession=JSESSIONID|jsessionid nofailover=Off
</location>
<Proxy balancer://filescrum1Cluster>
BalancerMember ajp://app11aind2:10003/ route=app11a003 timeout=300 ping=1 retry=120
BalancerMember ajp://app11bind2:10003/ route=app11b003 timeout=300 ping=1 retry=120
</Proxy>
А для HTTP-коннектора ниже строки, которые я добавил в конфигурационный файл Apache
<location /filescrum1>
AddOutputFilterByType DEFLATE text/html text/javascript text/css text/xml application/javascript
ProxyPass balancer://filescrum1Cluster/filescrum1 timeout=120 stickysession=JSESSIONID|jsessionid nofailover=Off
</location>
<Proxy balancer://filescrum1Cluster>
BalancerMember http://app11aind2:9003/ route=app11a003 timeout=300 ping=1 retry=120
BalancerMember http://app11bind2:9003/ route=app11b003 timeout=300 ping=1 retry=120
</Proxy>
Нет изменений на стороне кода, и просто замена коннектора приводит к улучшению более чем на 90%. Я хочу знать больше, что мы можем попробовать в производстве или нет? Также HTTP-коннектор лучше, чем AJP или нет?