Jersey 2 ატვირთვის ბუფერიზაცია პროქსის ავთენტიფიკაციის განმეორებითი ცდებისთვის
გახადეთ Jersey 2 Apache კონექტორის მოთხოვნის ობიექტი განმეორებადი, როცა ავთენტიფიკაციის მოლაპარაკებას ატვირთვის ხელახლა გაგზავნა სჭირდება.
პროქსის გამოწვევის შემდეგ განმეორებით მცდელ ატვირთვას კვლავ სჭირდება თავისი სხეული. Jersey 2-ის Apache connector-ისთვის აირჩიეთ ბუფერიზებული ობიექტის დამუშავება იმ კონფიგურაციაში, რომლითაც ეს კლიენტი იგება:
ClientConfig config = new ClientConfig();
config.connectorProvider(new ApacheConnectorProvider());
config.property(ClientProperties.PROXY_URI,
"http://proxy.example.net:8080");
config.property(ClientProperties.REQUEST_ENTITY_PROCESSING,
RequestEntityProcessing.BUFFERED);შეასრულეთ ატვირთვა მიღებული კლიენტის მეშვეობით. ეს ტიპები მოდის Jersey client და Apache-connector პაკეტებიდან; გამოუყენებელი კონფიგურაციის დაყენება მოთხოვნაზე გავლენას არ მოახდენდა.
კონექტორი ბუფერიზებულ ობიექტს Apache-ის BufferedHttpEntity-ში ახვევს. მისი არაბუფერიზებული ნაკადური ობიექტი განმეორებადი არ არის. ბუფერიზაცია ავთენტიფიკაციის ნაკადს აძლევს ბაიტებს, რომელთა ხელახლა გაგზავნაც შეიძლება, ნაცვლად უკვე მოხმარებული მწარმოებლის ხელახლა წაკითხვისა.
ეს არ იძლევა გარანტიას, რომ ავთენტიფიკაცია ერთი 407-ის შემდეგ დასრულდება. ზოგი სქემა კანონიერად რამდენიმე გაცვლას მოითხოვს, ამიტომ სანამ სხვა გამოწვევას დაკარგულ მდგომარეობად ჩათვლით, მთელი მოლაპარაკება შეამოწმეთ.
შეინარჩუნეთ სხეულის ზომა მეხსიერების ბიუჯეტში. დიდ ნაკადურ ატვირთვას სჭირდება ამ დატვირთვისთვის შესაფერისი განმეორების სტრატეგია; ყოველი მოთხოვნისთვის ბუფერიზაციის ჩართვამ შეიძლება მოლაპარაკების უკმარისობა მეხსიერების ამოწურვით შეცვალოს.