2017-01-03 7 views
3

Я изучаю весну. Теперь у меня есть конфигурационный сервер весеннего облака и сервер eureka.server.port в командной строке, не работающей с сервером конфигурации весеннего облака и сервером eureka

Код для Config сервера

@SpringBootApplication 
@EnableConfigServer 
public class ConfigServerApplication { 

    public static void main(String[] args) { 
     SpringApplication.run(ConfigServerApplication.class, args); 
    } 
} 

application.properties

spring.application.name=config-server 
spring.cloud.config.server.git.uri=https://github.com/vincentwah/spring-cloud-config-repository/ 
server.port=7001 

Код для сервера Eureka

@SpringBootApplication 
@EnableEurekaServer 
public class EurekaServerApplication { 

    public static void main(String[] args) { 
     SpringApplication.run(EurekaServerApplication.class, args); 
    } 
} 

bootstrap.properties

spring.application.name=eureka-server 
spring.cloud.config.uri=http://localhost:7001/ 

Конфиг для эврика-сервера https://github.com/vincentwah/spring-cloud-config-repository/blob/master/eureka-server.properties

eureka.client.register-with-eureka=false 
eureka.client.fetch-registry=false 
eureka.client.serviceUrl.defaultZone=http://localhost:${server.port}/eureka/ 
server.port=1111 

Когда я начинаю сервер эврика, я хотел бы изменить порт, поэтому я бегу под командой

java -jar target/eureka-server-0.0.1-SNAPSHOT.jar --server.port=1234 

Однако сервер все еще началось с порта 1111

2017-01-03 14:04:11.324 INFO 6352 --- [  Thread-10] c.n.e.r.PeerAwareInstanceRegistryImpl : Changing status to UP 
2017-01-03 14:04:11.339 INFO 6352 --- [  Thread-10] e.s.EurekaServerInitializerConfiguration : Started Eureka Server 
2017-01-03 14:04:11.492 INFO 6352 --- [   main] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat started on port(s): 1111 (http) 
2017-01-03 14:04:11.493 INFO 6352 --- [   main] c.n.e.EurekaDiscoveryClientConfiguration : Updating port to 1111 
2017-01-03 14:04:11.500 INFO 6352 --- [   main] com.example.EurekaServerApplication  : Started EurekaServerApplication in 27.532 seconds (JVM running for 29.515) 

Я думаю, что я не ошибаюсь в --server.port в командной строке. Кто-нибудь сталкивается с одной проблемой?

+0

Какая операционная система? Попробуйте '--SERVER_PORT = 1234'. –

+0

Windows 7 + весенняя обувь 1.4.3. Я пробовал --SERVER_PORT = 1234, но не работал. У меня есть исходный код на https://github.com/vincentwah/spring-boot/tree/master/config-server и https: // github.com/vincentwah/spring-boot/tree/master/eureka-server – vincent

+0

Только что заметил, что вы извлекаете свойства из конфигурационного сервера ... Если я правильно помню, что они имеют приоритет над другими определенными свойствами. –

ответ

2

Spring Cloud Config, по умолчанию, переопределяет локальную конфигурацию. Он должен быть источником истины. Вы можете использовать профили, чтобы порт не был определен с определенным профилем. Вы также можете отключить конфигурационный клиент, если он действительно не нужен (например, в тестах).

Есть также варианты allow overrides.

Источниками собственности, которые добавляются к вам приложения, контекст начальной загрузки часто «удаленный» (например, из Config сервера), и по умолчанию они не могут быть перекрыты локально, за исключением команды линии. Если вы хотите разрешить приложениям переопределять удаленные объекты со своими собственными свойствами или конфигурационными файлами системы, источник удаленных источников должен предоставить ему разрешение, установив spring.cloud.config.allowOverride=true (он не работает для установки этого локально). После того, что флаг есть некоторые тонкоуровневая настройка контролировать местоположение удаленных свойств по отношению к системе свойств и локальной конфигурация приложения: spring.cloud.config.overrideNone=true переопределить с любым локальным источником собственности, и если только система spring.cloud.config.overrideSystemProperties=false свойства и env vars должны переопределять удаленные настройки, но не локальных файлов конфигурации.

0
eureka.client.register-with-eureka=false 
eureka.client.fetch-registry=false 
eureka.client.serviceUrl.defaultZone=http://localhost:${server.port}/eureka/ 
server.port=1111 
spring.cloud.config.allowOverride=true 
spring.cloud.config.overrideNone=true 
spring.cloud.config.overrideSystemProperties=false 

Это работает.