Ħajt wieħed jistabbilixxi proprjetà tal-proxy, jagħmel talba u jirrestawra l-valur l-antik. Ħajt ieħor jagħmel l-istess b'proxy differenti. Il-kodiċi jidher nadif meta taqrah minn fuq għal isfel, imma ż-żewġ ħjut qed ibiddlu stat JVM kondiviż.

System.setProperty() ibiddel proprjetà tas-sistema għall-proċess. Ma jwaħħalx rotta mal-ħajt li sejjaħha. Talba konkorrenti tista' tara valur miktub għax-xogħol ta' ħaddieħor, u klijent eżistenti jista' jkun diġà qabad il-konfigurazzjoni tiegħu stess.

Agħmel ir-rotta parti mill-klijent

Għall-klijent HTTP ta' Java, oħloq klijenti b'seletturi tal-proxy maħsuba. Żomm klijenti separati meta x-xogħol jeħtieġ politiki ta' routing distinti:

HttpClient client = HttpClient.newBuilder()
    .proxy(ProxySelector.of(
        new InetSocketAddress("203.0.113.10", 8080)))
    .connectTimeout(Duration.ofSeconds(5))
    .build();

L-imports huma java.net, java.net.http u java.time. L-indirizz huwa illustrattiv; għal testijiet tal-rotta pubblika permessi, il-lista tal-proxy HTTP tipprovdi endpoints kandidati. Ikkonfigura l-iskadenzi tat-talbiet u l-awtentikazzjoni tal-proxy b'mod separat skont il-ħtiġijiet tal-applikazzjoni.

Il-metodu proxy tal-builder jirreġistra għażla fil-livell tal-klijent. Dan jagħmel il-politika aktar faċli biex tiġi spezzjonata minn sekwenza ta' kitbiet globali mgeżwra madwar operazzjonijiet asinkroniċi.

Is-settings globali għad għandhom użu

Politika waħda tal-proxy għall-JVM kollu tista' tkun xierqa meta kull klijent parteċipanti huwa maħsub li jsegwiha. Issettja dik il-politika fil-bidu tal-applikazzjoni u vverifika liema libreriji jirrispettawha.

Problemi jinqalgħu meta l-proprjetajiet globali jintużaw bħala swiċċ temporanju għal talbiet individwali. F'server, ħaddiema fl-isfond u sejħiet ta' libreriji jistgħu jaħdmu b'mod konkorrenti anki jekk il-metodu tiegħek jidher sinkroniku. Żomm l-istat tar-routing mal-klijent jew mal-konnettur li jippossjedi l-konnessjoni, sabiex talba oħra ma tistax tibdlu f'nofs ix-xogħol.

Artikli relatati