簡體   English   中英

Spring 作為戰爭引導與 jar

[英]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 容器。

  • 如果您的項目之一泄漏 memory 或 CPU 會發生什么,這是否意味着您的 tomcat 將失敗?
  • 如果您需要重新啟動您的項目之一,會發生什么?

另一方面,如果您的項目相互依賴,您可能需要使用 war。

沒有更好的方法,這取決於項目和您對 docker 的 devOps 的了解。 就我個人而言,我使用 Jar 運行我所有的項目,用於單獨的進程,有或沒有 docker。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM