Tôi đã viết một máy chủ Thrift trong Java để tận dụng lợi thế của một gói Java/thư viện cụ thể, nhưng tôi không phải là một lập trình viên java.Tải trước các lớp/thư viện java khi khởi động jar?
Vấn đề là; Tôi thấy một thời gian chờ cho cuộc gọi RPC đầu tiên đến máy chủ. Các yêu cầu tiếp theo được thực hiện mà không có bất kỳ vấn đề nào và chỉ các khách hàng ảnh hưởng của nó được viết bằng một số ngôn ngữ nhất định (nhưng cần thiết).
Suy nghĩ hiện tại của tôi là máy chủ hết thời gian chờ phản hồi bởi vì khi gọi đầu tiên nó phải tải tất cả các thư viện cần thiết cho yêu cầu. Một số ứng dụng khách của Thrift phải xử lý hết thời gian chờ hơn những người khác, có thể giữ yêu cầu mở lâu hơn một chút.
Có cách nào trong java để tải trước các thư viện tôi đang sử dụng khi lần đầu tiên tôi bắt đầu tệp .jar để không có sự chậm trễ về yêu cầu đầu tiên không?
Giải pháp: Tôi gặp vấn đề (và một số vấn đề khác được nêu ra) bằng cách tăng thời gian chờ từ (các) khách hàng tiết kiệm. Tuy nhiên, tôi đã thực hiện câu trả lời tĩnh/Class.forName cũng để giúp mọi thứ cùng, hoạt động tốt. Cảm ơn!
Bạn có thể xem qua một số trình tải trước lớp Java hiện có (https://github.com)/jermainexu/ClassPreloader). – StarPinkER