ఏకకాల Java అభ్యర్థనలు తప్పు proxy సెట్టింగ్లను పంచుకోవచ్చు
పంచుకున్న JVM proxy సెట్టింగ్లను మార్చకుండా ఏకకాల Java అభ్యర్థనలను వాటి ఉద్దేశిత మార్గాల్లో ఉంచండి.
ఒక thread proxy లక్షణాన్ని సెట్ చేసి, అభ్యర్థన చేసి, పాత విలువను పునరుద్ధరిస్తుంది. మరో thread వేరే proxyతో అదే చేస్తుంది. పైనుంచి కిందకు చదివినప్పుడు కోడ్ చక్కగా కనిపిస్తుంది, కానీ రెండు threadలు పంచుకున్న JVM స్థితిని మారుస్తున్నాయి.
System.setProperty() ప్రక్రియ కోసం సిస్టమ్ లక్షణాన్ని మారుస్తుంది. అది తనను పిలిచిన threadకు మార్గాన్ని జోడించదు. ఏకకాల అభ్యర్థన మరొకరి పని కోసం రాసిన విలువను చూడవచ్చు, ఇప్పటికే ఉన్న client తన స్వంత కాన్ఫిగరేషన్ను ఇప్పటికే పట్టుకుని ఉండవచ్చు.
మార్గాన్ని clientలో భాగం చేయండి
Java HTTP client కోసం, ఉద్దేశపూర్వక proxy ఎంపికలు ఉన్న clientలను సృష్టించండి. పని భారాలు వేర్వేరు రూటింగ్ విధానాలు అవసరమైనప్పుడు వేర్వేరు clientలను ఉంచండి:
HttpClient client = HttpClient.newBuilder()
.proxy(ProxySelector.of(
new InetSocketAddress("203.0.113.10", 8080)))
.connectTimeout(Duration.ofSeconds(5))
.build();
imports java.net, java.net.http మరియు java.time. చిరునామా ఉదాహరణాత్మకం; అనుమతించిన పబ్లిక్ మార్గ పరీక్షల కోసం HTTP proxy జాబితా అభ్యర్థి ఎండ్పాయింట్లను అందిస్తుంది. అభ్యర్థన గడువులు మరియు proxy ప్రామాణీకరణను అప్లికేషన్ అవసరాలకు అనుగుణంగా విడిగా కాన్ఫిగర్ చేయండి.
builder యొక్క proxy పద్ధతి client-స్థాయి ఎంపికను నమోదు చేస్తుంది. అది అసమకాలిక కార్యకలాపాల చుట్టూ చుట్టిన ప్రపంచ రాతల క్రమం కంటే విధానాన్ని పరిశీలించడం సులభతరం చేస్తుంది.
ప్రపంచ సెట్టింగ్లకు ఇప్పటికీ ఉపయోగం ఉంది
పాల్గొనే ప్రతి client దానిని అనుసరించాలని ఉద్దేశించినప్పుడు మొత్తం JVMకు ఒకే proxy విధానం సరిపోతుంది. ఆ విధానాన్ని అప్లికేషన్ ప్రారంభంలో సెట్ చేసి, ఏ లైబ్రరీలు దానిని గౌరవిస్తాయో ధృవీకరించండి.
ప్రపంచ లక్షణాలు వ్యక్తిగత అభ్యర్థనలకు తాత్కాలిక స్విచ్గా ఉపయోగించినప్పుడు సమస్యలు వస్తాయి. సర్వర్లో, మీ పద్ధతి సమకాలికంగా కనిపించినా నేపథ్య కార్మికులు మరియు లైబ్రరీ కాల్లు ఏకకాలంలో నడవవచ్చు. కనెక్షన్ను కలిగి ఉన్న client లేదా connector వద్ద రూటింగ్ స్థితిని ఉంచండి, తద్వారా మరో అభ్యర్థన పని మధ్యలో దాన్ని మార్చలేదు.