*Đã lưu trữ* = Quản lý kết nối máy chủ web = Vấn đề: Tôi có một ứng dụng JavaFx yêu cầu db thông qua http. Tôi thỉnh thoảng gặp sự cố trong đó tất cả các kết nối có sẵn với máy chủ web (191) đều được sử dụng hết, gây ra sự cố Tôi đang cố gắng tìm ra lý do tại sao điều này xảy ra, vì có vẻ như các kết nối thực tế sẽ thấp hơn nhiều. Có tối đa 40 phiên bản của ứng dụng đang chạy cùng một lúc Đây là một phương pháp sử dụng điển hình (Kotlin): fun myHTTPFunction(user: String, phone: String, customCID: Boolean, cID: String) { val httpClient = HttpClients.createDefault() val response: CloseableHttpResponse try { val useCID = when(customCID) { true ->"&group_alias=$cID"khác ->""} val httpPost = HttpPost(ĐỊA CHỈ PHP) phản hồi = httpClient.execute(httpPost) EntityUtils.consume(response.entity) try {response.closecatch (e: Exception) {Exception.showStackTrace(e )} thử {httpClient.closecatch (e: Ngoại lệ) {ngoại lệ.showStackTrace(e)} } bắt (e: Ngoại lệ) { ngoại lệ.showStackTrace(e) } } Lưu ý: Ban đầu chỉ có một phiên bản duy nhất của HttpClients được tạo và được sử dụng lại cho các lệnh gọi phương thức. Tuy nhiên, khi kiểm tra các kết nối trên máy chủ web, phương pháp này dẫn đến kết nối nhiều hơn khoảng 30% cho mỗi máy khách đang hoạt động. (Tối đa 20 mặc dù chỉ có một lệnh gọi phương thức 'createDefault duy nhất.) Sử dụng một phương pháp như mã đính kèm dẫn đến 1-4 kết nối trên mỗi máy khách, nhưng điều này vẫn có thể gây ra sự cố, đặc biệt khi hơn 20 máy khách được kích hoạt cùng một lúc. Hầu hết các kết nối sẽ tự kết thúc sau vài giây, nhưng nếu giới hạn kết nối 191 bị chạm, các kết nối sẽ không đóng được nữa và máy chủ gặp sự cố Theo hiểu biết của tôi, cách sử dụng httpclient apache được khuyến nghị là sử dụng một phiên bản máy khách duy nhất, nhưng điều này dường như không dẫn đến một kết nối duy nhất đến máy chủ. Những suy nghĩ hay điều gì đó mà tôi (có lẽ) đã bỏ lỡ? chưa có bình luận nào Hãy là người đầu tiên chia sẻ những gì bạn nghĩ! == Giới thiệu về cộng đồng == Các thành viên Trực tuyến