在spring cloud微服务架构中,基本上每一个拆分的微服务都会部署多个运行实例,这些运行实例,配置基本都是同样的,不一样的是少数配置,好比端口,而这些不一样的配置又是必不可少的java
那咱们怎么来部署同一个微服务的多个不一样实例呢,spring
总不能改改配置文件 --编译--发布一个一个来吧,几十几百个实例那得累死头牛bootstrap
也不能一个实例一个配置文件吧,那配置文件也堆成山,改一个改到累死头牛架构
还有些人把配置文件从jar包剥离,有改动时那也一个个改,仍是累死头牛;app
咱们基本上都用spring cloud config server 来管理配置文件,那怎么来拆分呢,正确的作法应该是:微服务
一、抽离共同的配置项放到spring cloud config server管理的配置文件application.yml中,spa
二、少数每一个实例不一样的配置项放在项目的bootstrap.yml中,好比:端口号、机器编号等code
三、bootstrap.yml中不一样的配置项做为启动参数传入:server
java -jar -Xms256m -Xmx512m -Dserver.port=8099 -Dserver.workId=1 -Dserver.datacenterId=1 anson.jar
上面的实例启动时,设置了不一样的端口、datacenterId、workId,这三个是不一样实例不一样设置的,blog
这样,咱们的同一个微服务就只有一套配置文件,部署多少是实例都不须要变更,只须要在启动实例时传入设置便可;