2017-04-08 243 views
0

我一個春天啓動註冊服務器(尤里卡服務器)上工作。 目前它正在使用下面的配置。春季啓動註冊服務器(尤里卡服務器)

項目名稱:註冊服務
內部主要方法: System.setProperty( 「spring.config.name」, 「註冊服務」);

「陽明文件」:
文件名:註冊服務 內容:

 eureka: 
     instance: 
     hostname: eureka-server 
     server: 
     enableSelfPreservation: false 
     client: 
     register-with-eureka: false 
     fetch-registry: false 
     serviceUrl: 
     defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/ 


    server: 
     port: 2323 # HTTP (Tomcat) port 




spring: 
application: 
    name: eureka-server 

通過以上的配置,應用程序啓動對2323 運行,但如果我改變春天.config.name,它不起作用,開始給連接拒絕異常。

  1. 它爲什麼會發生?即使這個spring.config.name沒有在yml文件中使用的地方。它是否必須與項目名稱相同?或者它特定於啓用了@EnableEurekaServer的彈簧引導應用程序。

  2. 而在陽明我們來寫

春: 應用: 名稱:尤里卡服務器

儘管在其他春天啓動應用程序,我們給當前項目的名稱(這裏應該是註冊服務)。爲什麼我們必須在這裏寫尤里卡 - 服務器?我知道,我錯過了一些東西(或很多東西)。請幫助我理解缺失的部分。默認情況下

回答

2

春季啓動查找文件application.yml。如果你的應用程序中有不同的配置文件,它也可以查找application- {profilename} .yml。這是隨後的默認約定。

spring.config.name屬性用於覆蓋此默認行爲。當你用register-service覆蓋這個屬性時,spring引導會查找一個文件register-service.yml並從中加載配置。

因此,這是在寄存器service.yml文件給你的尤里卡服務器的URL可能不是在默認application.yml文件中。因此,當你改變這個值時,Spring的啓動可能不會發現Eureka服務器的url。

保持不變的名稱,儘可能地。如果你有配置文件爲register-service.yml,那麼保持spring.config.name = register-service。如果您更改此值,則需要使用config.name值創建新文件,然後再添加eureka配置。

+0

爲什麼在* .yml文件中,我們必須寫春: 應用: 名稱:尤里卡服務器。儘管在其他的啓動應用程序中,我們編寫「name:(無論我們在System.setProperty中編寫的名稱)」 – Nishat

+0

在Eureka中,默認的spring.application.name用作serviceId。服務ID是識別尤里卡集羣內任何單個服務的關鍵。在Eureka內部,serviceId和有關實際服務的元數據作爲關鍵值對映射來維護。你給的Spring應用程序的任何名字被用作尤里卡您的服務的唯一標識符。按我所知,在春天的配置沒有名字屬性中可用。你可以通過下面的鏈接,找到可用的。 https://docs.spring.io/spring-boot/docs/current/reference/html/common-application-properties.html –

相關問題