Զուգահեռ Java հարցումները կարող են կիսել սխալ պրոքսի կարգավորումներ
Պահեք զուգահեռ Java հարցումները իրենց նախատեսված երթուղիներում՝ առանց JVM-ի ընդհանուր պրոքսի կարգավորումները փոխելու։
Մեկ թել սահմանում է պրոքսի հատկություն, կատարում հարցում և վերականգնում հին արժեքը։ Մեկ այլ թել նույնն է անում այլ պրոքսիով։ Կոդը վերևից ներքև կարդալիս կոկիկ է թվում, բայց երկու թելերն էլ փոխում են JVM-ի ընդհանուր վիճակը։
System.setProperty() փոխում է գործընթացի համակարգային հատկությունը։ Այն երթուղի չի կցում այն կանչած թելին։ Զուգահեռ հարցումը կարող է տեսնել ուրիշի աշխատանքի համար գրված արժեք, և գոյություն ունեցող հաճախորդը կարող է արդեն իսկ գրաված լինել իր սեփական կոնֆիգուրացիան։
Երթուղին դարձրեք հաճախորդի մաս
Java-ի HTTP հաճախորդի համար ստեղծեք հաճախորդներ դիտավորյալ պրոքսի ընտրիչներով։ Երբ աշխատանքային բեռները պահանջում են տարբեր երթուղավորման քաղաքականություն, պահեք առանձին հաճախորդներ՝
HttpClient client = HttpClient.newBuilder()
.proxy(ProxySelector.of(
new InetSocketAddress("203.0.113.10", 8080)))
.connectTimeout(Duration.ofSeconds(5))
.build();
Ներմուծումներն են java.net, java.net.http և java.time։ Հասցեն օրինակելի է. թույլատրված հանրային երթուղիների թեստերի համար HTTP պրոքսիների ցանկը տրամադրում է թեկնածու վերջնակետեր։ Կարգավորեք հարցումների ժամկետները և պրոքսի նույնականացումը առանձին՝ ըստ հավելվածի կարիքների։
Կառուցողի proxy մեթոդը գրանցում է ընտրություն հաճախորդի մակարդակում։ Դա քաղաքականությունը դարձնում է ավելի հեշտ ստուգելի, քան ասինխրոն գործողությունների շուրջ փաթաթված գլոբալ գրառումների հաջորդականությունը։
Գլոբալ կարգավորումները դեռ օգտակար են
Մեկ ամբողջ JVM-ի պրոքսի քաղաքականությունը կարող է տեղին լինել, երբ բոլոր մասնակից հաճախորդները պետք է հետևեն դրան։ Սահմանեք այն հավելվածի մեկնարկին և ստուգեք, թե որ գրադարաններն են հարգում այն։
Խնդիրներ են առաջանում, երբ գլոբալ հատկությունները օգտագործվում են որպես առանձին հարցումների ժամանակավոր անջատիչ։ Սերվերում ֆոնային աշխատողները և գրադարանային կանչերը կարող են գործել զուգահեռ, նույնիսկ եթե ձեր սեփական մեթոդը սինխրոն է թվում։ Երթուղավորման վիճակը պահեք այն հաճախորդի կամ միակցիչի մոտ, որը տիրապետում է կապին, որպեսզի մեկ այլ հարցում չկարողանա փոխել այն աշխատանքի կեսին։