Konfigurácia oblastí vlákien pre webové servery Java
1. Úvod
V tomto výučbe sa pozrieme na konfiguráciu fondu vlákien pre servery webových aplikácií Java, ako sú Apache Tomcat, Glassfish Server a Oracle Weblogic.
2. Skupiny vlákien servera
Fondy serverových vlákien sa používajú a spravujú serverom webových aplikácií pre nasadenú aplikáciu. Tieto oblasti vlákien existujú mimo webového kontajnera alebo servletu, takže nepodliehajú rovnakej hranici kontextu.
Na rozdiel od aplikačných vlákien existujú serverové vlákna aj po zastavení nasadenej aplikácie.
3. Apache Tomcat
Najskôr môžeme nakonfigurovať fond vlákien servera Tomcat cez Exekútor konfiguračná trieda v našej server.xml:
minSpareThreads je najmenší, aký bude fond, a to aj pri štarte. maxThreads je najväčší, aký bazén bude pred serverom začne radiť požiadavky.
Tomcat ich predvolene nastavuje na 25, respektíve 200. V tejto konfigurácii sme zmenšili fond vlákien o niečo menší ako predvolený.
3.1. Vložený Tomcat
Podobne môžeme zmeniť vložený server Tomcat pre Spring Boot tak, aby nakonfiguroval fond vlákien nastavením vlastnosti aplikácie:
server.tomcat.max-threads = 250
Od verzie Boot 2.3 sa vlastnosť zmenila na:
server.tomcat.threads.max = 250
4. Sklenené rybky
Ďalej aktualizujeme náš server Glassfish.
Glassfish používa príkaz administrátora na rozdiel od konfiguračného súboru XML spoločnosti Tomcat, server.xml. Po výzve spustíme:
create-threadpool
Môžeme pridať do create-threadpool vlajky maxthreadpoolsize a minthreadpoolsize. Fungujú podobne ako Tomcat minSpareThreads a maxThreads:
--maximálna veľkosť závitov 250 --minútová veľkosť závitov 25
Môžeme tiež určiť, ako dlho môže byť vlákno nečinné pred návratom do fondu:
--idletimeout = 2
A potom na konci zadáme názov nášho fondu vlákien:
asadmin> create-threadpool --maxthreadpoolsize 250 --minthreadpoolsize 25 --idletimeout = 2 threadpool-1
5. Weblogic
Oracle Weblogic nám dáva možnosť meniť fond samoladiacich vlákien pomocou WorkManageru.
Podobne ako vo frontoch vlákien, WorkManager spravuje fond vlákien ako frontu. WorkManager však pridáva dynamické vlákna založené na priepustnosti v reálnom čase. Weblogic pravidelne vykonáva analýzu priepustnosti, aby optimalizoval využitie vlákna.
Čo to pre nás znamená? Znamená to, že hoci môžeme zmeniť fond vlákien, webový server nakoniec rozhodne o tom, či umiestniť nové vlákna.
Náš fond vlákien môžeme nakonfigurovať v administrátorskej konzole Weblogic:

Aktualizuje sa Samoladiaca minimálna veľkosť skupiny závitov a Samoladiaca závitová maximálna veľkosť bazénu hodnoty nastavujú minimálnu a maximálnu hranicu pre WorkManagers.
Všimnite si Maximálny čas zaseknutej nite a Interval časovača zaseknutého vlákna hodnoty. Pomáhajú WorkManageru klasifikovať uviaznuté vlákna.
Dlhodobý proces môže niekedy spôsobiť nahromadenie uviaznutých vlákien. WorkManager na vyrovnanie vytvorí nové vlákna z fondu vlákien. Akákoľvek aktualizácia týchto hodnôt by mohla predĺžiť čas potrebný na dokončenie procesu.
Uviaznuté vlákna môžu naznačovať problémy s kódom, takže je vždy lepšie riešiť hlavnú príčinu, ako použiť alternatívne riešenie.
6. Záver
V tomto rýchlom článku sme sa zaoberali viacerými spôsobmi konfigurácie oblastí vlákien aplikačného servera.
Aj keď existujú rozdiely v tom, ako aplikačné servery spravujú rôzne oblasti vlákien, konfigurujú sa pomocou podobných konceptov.
Na záver si pripomeňme, že zmena konfiguračných hodnôt pre webové servery nie je vhodnou opravou pre zle fungujúci kód a zlý dizajn aplikácie.