cuốn sách gpt4 ai đã làm

java - Triển khai, đóng gói hoặc nhúng các vùng chứa web

In lại Tác giả: Taklimakan Thời gian cập nhật: 2023-11-02 08:27:00 28 4
mua khóa gpt4 Nike

Tôi đang phát triển một ứng dụng cần dễ cài đặt nhất có thể cho người dùng cuối. Mặc dù người dùng cuối có thể là người dùng Linux có kinh nghiệm (hoặc kỹ sư bán hàng), họ không thực sự biết nhiều về Tomcat, Jetty, v.v., và tôi cũng không nghĩ họ nên làm vậy.

Như vậy tôi thấy có 3 cách để triển khai ứng dụng. Tôi cũng nên nói rõ rằng đây là ứng dụng đầu tiên tôi phải triển khai với giao diện web, vì vậy tôi chưa bao giờ thực sự gặp phải vấn đề này trước đây.

Bước đầu tiên là triển khai ứng dụng vào vùng chứa web hiện có. Vì chúng tôi chỉ triển khai cho Suse hoặc RedHat nên việc này có vẻ dễ thực hiện. Tuy nhiên, chúng tôi không đồng ý với ý tưởng chạy nhiều ứng dụng trong vùng chứa web. Điều này khiến việc xóa chỉ một ứng dụng trở nên khó khăn hơn.

Tùy chọn tiếp theo là chỉ gói Tomcat hoặc Jetty và để tập lệnh khởi động/tắt máy khởi động vùng chứa web đi kèm của chúng tôi.

Hoặc thứ ba, nhúng.. điều này có thể cung cấp trải nghiệm người dùng giống như tùy chọn thứ hai.

Tôi tò mò người khác sẽ làm gì khi gặp phải vấn đề này để làm cho nó trở nên đơn giản và dễ hiểu nhất có thể đối với người dùng cuối.

Tôi gần như đã loại trừ việc triển khai vào vùng chứa web hiện có vì chúng tôi thường muốn đặt giới hạn tài nguyên và mối quan hệ CPU cho mỗi ứng dụng và tôi tin rằng điều này ảnh hưởng đến tất cả các ứng dụng được triển khai vào vùng chứa web/máy chủ ứng dụng, không chỉ các ứng dụng cụ thể.

Cảm ơn.

câu trả lời hay nhất

Triển khai nhiều tệp chiến tranh (hoặc tệp tai trong trường hợp máy chủ ứng dụng Java EE đầy đủ) là một ý tưởng từng là một lời hứa nhưng không hoạt động tốt trên thực tế.

Một vấn đề lớn là mặc dù đã có tiến bộ đáng kể nhưng việc tải lại nóng WAR của EAR vẫn có vấn đề. Rò rỉ bộ nhớ, rò rỉ tài nguyên, sự cố về trình nạp lớp... chúng luôn xảy ra. Do đó, phương pháp triển khai lại an toàn nhất là khởi động lại toàn bộ vùng chứa servlet hoặc máy chủ ứng dụng, nhưng thao tác này sẽ tắt tất cả các ứng dụng khác đang chạy trên đó.

Vấn đề thứ hai khi triển khai nhiều ứng dụng cho một AS duy nhất là chỉ có một lớp cách ly mỏng giữa chúng. Các ứng dụng có thể truy cập tài nguyên trong JNDI từ các ứng dụng khác. Đây có thể không phải là vấn đề đối với các ứng dụng hợp tác, nhưng nó sẽ trở thành vấn đề đối với các ứng dụng có thể thù địch với nhau.

Nhìn chung, các thùng chứa servlet không phải là sự thay thế cho các hệ điều hành đa nhiệm, biệt lập.

Với sự ra đời của các sản phẩm ảo hóa giá rẻ và hiệu quả như Xen, việc chỉ có một ứng dụng trên mỗi thùng chứa servlet (về cơ bản là đóng gói chúng) và triển khai chúng cho các máy khách Xen dường như là một lựa chọn tốt hơn.

Một lợi ích khác của việc này là nó cung cấp một đường dẫn dễ dàng hơn để nâng cấp các thư viện mà ứng dụng của bạn phụ thuộc vào. Nếu bạn coi cài đặt cố định của Tomcat 6 là nền tảng triển khai thì một ứng dụng không thể nâng cấp từ Tomcat 7 lên Servlet 3.0 vì điều này sẽ ảnh hưởng đến tất cả các ứng dụng khác chạy trên cùng Tomcat. Điều này quan trọng hơn đối với các ngăn xếp Java EE đầy đủ như JBoss AS vì chúng gói nhiều thư viện hơn.

Trong thực tế, điều này thường có nghĩa là với một Tomcat cố định chạy nhiều ứng dụng, bạn không bao giờ có thể nâng cấp ứng dụng của mình để tận dụng các thư viện/api mới hơn do Tomcat cung cấp vì sẽ luôn có một số ứng dụng khác vì lý do nào đó hoặc không thể nâng cấp vì lý do khác. Điều này có thể nhanh chóng biến thành cơn ác mộng.

Về java - triển khai vào vùng chứa web, đóng gói vùng chứa web hoặc nhúng vùng chứa web, chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/4548457/

28 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress