2016-10-18 31 views
0

this article Netflix的Eureka服务注册表支持使用属性spring.application.name注册指定的服务。例如:Netflix Eureka是否支持动态命名的Spring Boot应用程序?

spring.application.name=a-eureka-client 
具有基于也许就像一个模板模式动态名称

春天在什么-启动/尤里卡支持:

spring.application.name=a-eureka-client-#### 

因此部署在前两种情况下会被注册为:

a-eureka-client-0001 
a-eureka-client-0002 
+0

我很好奇...一旦你有你的应用程序注册的唯一名称。你会如何期待另一个想要调用该应用程序的应用程序?你希望其他应用程序使用全名吗?你所要求的似乎是一个非常奇怪的用例。 –

+0

我正在考虑一个“弹性云”类型的场景,其中每个'a-eureka-client'实例支持账户,并且当'a-eureka-client-0002'达到容量时,另一个实例启动并注册为'a-尤里卡 - 客户0003'。然后'account-deployment-manager'会看到新的账户并开始为其分配账户。当需要访问帐户的客户端首先查找持有该帐户的服务器名称('eureka-client-0003'),然后查找该实例的坐标。 – Ole

回答

1

您可以通过命令行或环境变量通过spring.application.name属性,如下所示:

$ java -jar app.jar --spring.applocation.name=a-eureka-client-001

或者

$ export SPRING_APPLICATION_NAME=a-eureka-client-002

$ java -jar app.jar

或者,也可以想出称为my.app.suffix自定义属性,注入,作为一个命令行属性或环境变量如上所示,并在您的application.properties(或YML)中,使用后缀来填写您的应用程序的名称:

spring.application.name: a-eureka-client-${my.app.suffix:some-default}

这样,您可以支持未提供后缀的情况,在这种情况下,some-default将默认用作后缀。

0

如果您使用的春天开机,然后将src /主/资源文件夹,你必须有额外的 bootstrap.properties文件,及以下线路线。 请勿放入application.properties文件。在加载应用程序上下文

spring.application.name=Car-Position-Tracker 

bootstrap.properties文件读取:见春云的参考手册

和POM,这是的* .properties被拾起插件生成插件

<build> 
    <plugins> 
     <plugin> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-maven-plugin</artifactId> 
     </plugin> 
    </plugins> 

    <resources> 
     <resource> 
      <filtering>true</filtering> 
      <directory>src/main/resources</directory> 
      <includes> 
       <include>*.properties</include> 
      </includes> 
     </resource>  
    </resources>   
</build> 
相关问题