*เก็บถาวร* = การจัดการการเชื่อมต่อเว็บเซิร์ฟเวอร์ = ปัญหา: ฉันมีแอปพลิเคชัน JavaFx ที่ร้องขอฐานข้อมูลผ่าน http ฉันพบปัญหาที่การเชื่อมต่อกับเว็บเซิร์ฟเวอร์ (191) ที่มีอยู่ทั้งหมดถูกใช้งานเป็นระยะๆ ทำให้เกิดข้อขัดข้อง ฉันกำลังพยายามหาสาเหตุที่สิ่งนี้เกิดขึ้น เนื่องจากดูเหมือนว่าการเชื่อมต่อจริงควรจะต่ำกว่านี้มาก มีอินสแตนซ์ของแอปพลิเคชันสูงสุด 40 รายการที่ทำงานพร้อมกัน นี่คือวิธีการใช้งานทั่วไป (Kotlin): สนุก myHTTPFunction(ผู้ใช้: สตริง โทรศัพท์: สตริง customCID: บูลีน cID: สตริง) { val httpClient = HttpClients.createDefault() การตอบสนอง val: CloseableHttpResponse ลอง { val useCID = เมื่อ (customCID) { จริง ->"&group_alias=$cID"อื่น ->""} val httpPost = HttpPost(PHP ADDRESS) การตอบสนอง = httpClient.execute(httpPost) EntityUtils.consume(response.entity) ลอง {response.closecatch (e: ข้อยกเว้น) {exception.showStackTrace(e )} ลอง {httpClient.closecatch (e: ข้อยกเว้น) {exception.showStackTrace(e)} } จับ (e: ข้อยกเว้น) { ข้อยกเว้น.showStackTrace(e) } } หมายเหตุ: เดิมทีมีการสร้าง HttpClients เพียงอินสแตนซ์เดียว และใช้ซ้ำสำหรับการเรียกใช้เมธอด อย่างไรก็ตาม เมื่อตรวจสอบการเชื่อมต่อบนเว็บเซิร์ฟเวอร์ วิธีการนี้จะส่งผลให้มีการเชื่อมต่อเพิ่มขึ้นประมาณ 30% ต่อไคลเอ็นต์ที่ใช้งานอยู่ (มากถึง 20 แม้จะเรียกใช้เมธอด 'createDefault เพียงครั้งเดียว) การใช้วิธีการเช่นโค้ดที่แนบมาทำให้เกิดการเชื่อมต่อ 1-4 ครั้งต่อไคลเอ็นต์ แต่สิ่งนี้ยังคงทำให้เกิดปัญหาได้ โดยเฉพาะอย่างยิ่งเมื่อมีการเปิดใช้งานไคลเอ็นต์มากกว่า 20 เครื่องพร้อมกัน การเชื่อมต่อส่วนใหญ่จะยุติลงเองภายในไม่กี่วินาที แต่ถ้าเกินขีดจำกัดการเชื่อมต่อ 191 การเชื่อมต่อจะไม่ปิดอีกต่อไปและเซิร์ฟเวอร์ล่ม ตามความเข้าใจของฉัน การใช้งาน apache httpclient ที่แนะนำคือการใช้อินสแตนซ์ของไคลเอ็นต์เดียว แต่ดูเหมือนจะไม่ส่งผลให้เกิดการเชื่อมต่อกับเซิร์ฟเวอร์เพียงครั้งเดียว ความคิดหรือสิ่งที่ฉัน (อาจ) พลาดไป? ยังไม่มีความคิดเห้น เป็นคนแรกที่แบ่งปันสิ่งที่คุณคิด! == เกี่ยวกับชุมชน == สมาชิก ออนไลน์