Chúng tôi đang xem xét chuyển đổi một số ứng dụng JaveEE cũ sang Spring Boot. Chúng tôi nhận được một nhà cung cấp để thực hiện điều này, nhưng họ cho rằng khởi động Spring với Tomcat hoặc Jetty được nhúng không phải là sản phẩm sẵn sàng và thay vào đó chúng tôi khuyên bạn nên gói nó để triển khai vào một thùng chứa (Tomcat/Jetty hoặc JBoss). Đây là loại thất bại mục đích. Yêu cầu có chính xác không?Khởi động Spring với Tomcat hoặc Jetty Production lớp
Trả lời
Nhóm Spring đề xuất "chế độ nhúng" độc lập, Pivotal (nhà tài trợ doanh nghiệp của Spring) cung cấp các dịch vụ tư vấn chính và đề xuất chế độ nhúng và Netflix đã tái cấu trúc các phần lớn của hệ thống để chạy trên Boot độc lập.
Tôi đã sử dụng chế độ nhúng (Tomcat và bây giờ Undertow) kể từ 0.5.0M6 và chưa bao giờ gặp sự cố với thành phần máy chủ. Có vẻ như nhà cung cấp của bạn có vấn đề bán bạn.
Các Twelve-Factor App khuyến nghị về chủ đề này:
Ứng dụng mười hai yếu tố là hoàn toàn khép kín và không dựa về tiêm thời gian chạy của một máy chủ web vào môi trường thực hiện để tạo ra một dịch vụ web-phải đối mặt với .
Nó không giải thích lý do tại sao, nhưng nguồn là here. Từ kinh nghiệm cá nhân của tôi, tôi cho rằng nó bổ sung thêm cấu hình (và do đó phức tạp), nơi nó thực sự không cần thiết. Nó cũng làm cho môi trường phát triển và sản xuất gần hơn (tức là những gì nhà phát triển viết là những gì được chạy trong sản xuất). Theo tải nặng, nó sẽ có ý nghĩa để đặt một dịch vụ ở phía trước của một cụm dịch vụ của bạn để xử lý cân bằng tải, nhưng đó là một chủ đề khác.
Nó không hoàn toàn rõ ràng làm thế nào điều này giải quyết các câu hỏi. – chrylis
- 1. chậm trễ khởi động Jetty do quét
- 2. Tomcat với Spring
- 3. NoClassDefFoundError khi khởi động jetty Server
- 4. Tomcat VS Jetty
- 5. Chạy Jetty tự động khi khởi động
- 6. Tiết kiệm phiên Jetty/Tomcat
- 7. Lạ java.lang.ArrayIndexOutOfBoundsException ném vào khởi động jetty
- 8. Tên người dùng và mật khẩu khi khởi động Spring Boot với Tomcat là gì?
- 9. Không thể khởi tạo lớp nhà máy: org.springframework.boot.autoconfigure.AutoConfigurationImportFilter "khi chạy ứng dụng Khởi động Spring trên Tomcat
- 10. mvn tomcat: chạy không khởi động Tomcat
- 11. Cách cấu hình Jetty trong spring-boot (dễ dàng?)
- 12. IntelliJ + Tomcat + Spring-Loaded
- 13. spring-boot không thể khởi động trong docker
- 14. Vấn đề khởi động Jetty: WebAppContext: Không khởi động được ngữ cảnh oejwWebAppContext {/, null}
- 15. Khởi động tomcat lúc khởi động Windows 7?
- 16. Bật tính kiên trì phiên với Khởi động mùa xuân và nhúng Tomcat
- 17. SpringBoot - Không thể khởi động TomCat được nhúng
- 18. Khởi động tomcat không thành công
- 19. Ứng dụng khởi động Spring hoạt động như thế nào?
- 20. @ComponentScan không hoạt động trong lớp Khởi động tự động cấu hình của Spring?
- 21. Tự động kết nối lại ở hậu kỳ với hồ bơi tomcat và Spring
- 22. Khởi động Spring Disable/error mapping
- 23. Khởi động Spring - cấu hình EntityManager
- 24. Khởi động mùa xuân - trang 404 tùy chỉnh với độc lập tomcat
- 25. Jetty, Tomcat, Nginx, Geronimo, Glassfish: Tôi đang bối rối
- 26. Sử dụng Jetty hoặc Netty?
- 27. LoadTimeWeaver Agent của Spring không khởi động
- 28. Spring Websocket trong cụm tomcat
- 29. NoSuchMethodError khi khởi động ứng dụng khởi động mùa xuân với Hibernate JPA
- 30. Không thể khởi động Tomcat 7.0 trong Eclipse Indigo
** "Nhóm Spring đề xuất chế độ nhúng độc lập" ** Bạn đã tìm thấy thông tin này ở đâu? Tôi không tìm thấy thông tin này trong tài liệu khởi động Spring. Và ý của bạn là "** chế độ nhúng độc lập **". Nghe có vẻ kỳ lạ vì các điều khoản mâu thuẫn. Khi tôi tìm kiếm cụm từ này với dấu ngoặc kép trên google, tôi không tìm thấy bất kỳ thông tin liên quan nào nhưng câu trả lời của bạn trên SO. – davidxxx
@davidhxxx Tôi không chắc chắn nơi để hướng dẫn bạn vào thời điểm này; trong một phần không nhỏ, đó là dựa trên các cuộc trò chuyện cá nhân với Dave Syer và những người khác. Về "nhúng độc lập", xuất phát từ việc kinh doanh J2EE truyền thống có thùng chứa bên ngoài mà bạn cài đặt ứng dụng. Spring Boot * nhúng * thùng chứa servlet làm công cụ để bạn có thể chạy ứng dụng * độc lập * chỉ với 'java -jar'. – chrylis
Cảm ơn bạn vì những điều này. Về điểm thứ hai (nhúng độc lập), tôi tự hỏi mình. Nếu SpringBoot cung cấp vùng chứa, nó trông giống như một chế độ nhúng. Bạn nói ** Pivotal (nhà tài trợ doanh nghiệp của Spring) cung cấp các dịch vụ tư vấn chính và đề xuất chế độ nhúng ** Nhưng tôi không thấy chế độ nhúng này có thể khác với chế độ nhúng của nhóm String mà bạn vừa mô tả trong nhận xét của mình. – davidxxx