[英]Spring boot as war vs jar
我們正在開發一個帶有 Spring-boot 和 REST 的中間件平台,我們不會完全采用微服務架構,而是基於功能創建小型服務。 例如:catalog-service-api 用於目錄上的 CRUD 操作,online-services-api 用於 IoT。
1. 我應該為戰爭使用 go 還是 jar?
我覺得 jar 的缺點是,每個 jar 都會創建一個新進程(新的 tomcat),此時我不想擴展。
當我們正在開發基於雲的企業產品時,我們需要 jar 還是戰爭? 不需要微服務。
2. 如果我 go 與戰爭,是 spring 啟動管理員會按預期工作嗎?
我們正面臨在一台服務器上部署 spring-boot 管理員,而客戶端是另一台服務器。
@SpringBootApplication
@EnableAutoConfiguration
@EnableAdminServer
public class SpringBootAdminServerApplication extends
SpringBootServletInitializer{
public static void main(String[] args) {
SpringApplication.run(SpringBootAdminServerApplication.class, args);
}
}
客戶:
@SpringBootApplication
public class SpringBootAdminClientApplication extends
SpringBootServletInitializer{
public static void main(String[] args) {
SpringApplication.run(SpringBootAdminClientApplication.class, args);
}
}
client application.properties: spring.boot.admin.client.url= http://localhost:8085 spring.boot.admin.client.service-url= http://localhost:8085/spring-boot-admin-server
管理服務器正在運行,但客戶端不可用。
請建議。
我應該為戰爭使用 go 還是 jar?
這個選擇完全取決於你。 我認為,如果您了解基本區別,您就會明白這一點。 見下文:
A.war 文件是Web 應用程序存檔,它在應用程序服務器內運行,而 a.jar 是Java 應用程序存檔,在用戶機器上運行桌面應用程序。
因此,如果您希望在同一應用服務器下運行多個應用程序,請選擇 war。 雖然趨勢是讓 jar 文件具有 0 服務器配置並且能夠在任何地方運行(例如 springboot fat-jar)。
如果我與 go 發生戰爭,spring 啟動管理員是否會按預期工作? 它與你的應用程序和服務器等機器的設置,一戰或jar類型無關。
我建議您應該 go 用於 Spring 啟動應用程序與 JAR 與 Z05B6053C41A2130AFDZ6FC63E 容器。
另一方面,如果您的項目相互依賴,您可能需要使用 war。
沒有更好的方法,這取決於項目和您對 docker 的 devOps 的了解。 就我個人而言,我使用 Jar 運行我所有的項目,用於單獨的進程,有或沒有 docker。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.