Hkratne zahteve Java si lahko delijo napacne nastavitve posrednika
Ohranite hkratne zahteve Java na predvidenih poteh brez preklapljanja skupnih nastavitev posrednika v JVM.
Ena nit nastavi lastnost posrednika, izvede zahtevo in obnovi staro vrednost. Druga nit stori isto z drugim posrednikom. Koda je ob branju od zgoraj navzdol urejena, vendar obe niti spreminjata skupno stanje JVM.
System.setProperty() spremeni sistemsko lastnost za proces. Ne pripne poti niti, ki ga je poklicala. Hkratna zahteva lahko vidi vrednost, zapisano za delo nekoga drugega, in obstojeci odjemalec je morda ze zajel lastno konfiguracijo.
Naredite pot del odjemalca
Za Javin odjemalec HTTP ustvarjajte odjemalce z namernimi izbirniki posrednika. Ko delovne obremenitve zahtevajo razlicne politike usmerjanja, imejte odjemalce locene:
HttpClient client = HttpClient.newBuilder()
.proxy(ProxySelector.of(
new InetSocketAddress("203.0.113.10", 8080)))
.connectTimeout(Duration.ofSeconds(5))
.build();
Uvozi so java.net, java.net.http in java.time. Naslov je zgolj ponazoritev; za dovoljene preskuse javnih poti seznam posrednikov HTTP ponuja kandidatne koncne tocke. Roke zahtev in preverjanje posrednika nastavite loceno glede na potrebe aplikacije.
metoda proxy v graditelju zabelezi izbiro na ravni odjemalca. Zaradi tega je politiko lazje pregledati kot zaporedje globalnih zapisov, ovitih okoli asinhronih operacij.
Globalne nastavitve so se vedno uporabne
Ena politika posrednika za celoten JVM je lahko primerna, kadar naj bi ji sledil vsak sodelujoci odjemalec. To politiko nastavite ob zagonu aplikacije in preverite, katere knjiznice jo upostevajo.
Tezave nastanejo, ko se globalne lastnosti uporabljajo kot zacasno stikalo za posamezne zahteve. Na strezniku lahko ozadnji delavci in klici knjiznic tecejo hkrati, tudi ce se vasa metoda zdi sinhrona. Stanje usmerjanja hranite pri odjemalcu ali konektorju, ki ima povezavo, da ga druga zahteva ne more spremeniti na pol poti.