Нэг урсгал прокси шинж чанарыг тогтоож, хүсэлт илгээж, хуучин утгыг сэргээдэг. Өөр урсгал өөр прокситой ижил зүйлийг хийдэг. Дээрээс доош уншихад код цэгцтэй харагдана, гэхдээ хоёр урсгал хоёулаа хуваалцсан 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 прокси жагсаалт нэр дэвшигч төгсгөлийн цэгүүдийг нийлүүлдэг. Хүсэлтийн хугацаа болон прокси баталгаажуулалтыг програмын хэрэгцээнд тохируулан тусад нь тохируулна уу.

Builder-ийн proxy арга клиентийн түвшний сонголтыг бүртгэдэг. Энэ нь бодлогыг асинхрон үйлдлүүдийг ороосон глобал бичлэгүүдийн дарааллаас илүү шалгахад хялбар болгодог.

Глобал тохиргоо хэрэгтэй хэвээр

Оролцож буй клиент бүр түүнийг дагах ёстой бол бүх JVM-д нэг прокси бодлого тохиромжтой байж болно. Тэр бодлогыг програмын эхлэлд тогтоож, аль сангууд түүнийг хүндэтгэж байгааг шалгаарай.

Глобал шинж чанарыг тусдаа хүсэлтүүдийн түр зуурын унтраалга болгон ашиглахад асуудал үүсдэг. Серверт таны арга синхрон мэт харагдаж байсан ч арын ажилчид болон сангийн дуудлагууд зэрэгцээ ажиллаж болно. Маршрутжуулалтын төлөвийг холболтыг эзэмшиж буй клиент эсвэл коннектор дээр байлгаарай, ингэснээр өөр хүсэлт ажлын дунд үүнийг өөрчилж чадахгүй.

Холбоотой нийтлэлүүд