在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
這樣,咱們的同一個微服務就只有一套配置文件,部署多少是實例都不須要變更,只須要在啓動實例時傳入設置便可;