0-前言 在spring cloud微服務架構中,基本上每個拆分的微服務都會部署多個運行實例,這些運行實例,配置基本都是一樣的,不同的是少數配置,比如埠,而這些不同的配置又是必不可少的 那我們怎麼來部署同一個微服務的多個不同實例呢, 總不能改改配置文件 --編譯--發佈一個一個來吧,幾十幾百個實例 ...
0-前言
在spring cloud微服務架構中,基本上每個拆分的微服務都會部署多個運行實例,這些運行實例,配置基本都是一樣的,不同的是少數配置,比如埠,而這些不同的配置又是必不可少的
那我們怎麼來部署同一個微服務的多個不同實例呢,
總不能改改配置文件 --編譯--發佈一個一個來吧,幾十幾百個實例那得累死頭牛
也不能一個實例一個配置文件吧,那配置文件也堆成山,改一個改到累死頭牛
還有些人把配置文件從jar包剝離,有改動時那也一個個改,還是累死頭牛;
1-如何拆分
我們基本上都用spring cloud config server 來管理配置文件,那怎麼來拆分呢,正確的做法應該是:
1、抽離共同的配置項放到spring cloud config server管理的配置文件application.yml中,
2、少數每個實例不同的配置項放在項目的bootstrap.yml中,比如:埠號、機器編號等
3、bootstrap.yml中不同的配置項作為啟動參數傳入:
java -jar -Xms256m -Xmx512m -Dserver.port=8099 -Dserver.workId=1 -Dserver.datacenterId=1 anson.jar
上面的實例啟動時,設置了不同的埠、datacenterId、workId,這三個是不同實例不同設置的,
這樣,我們的同一個微服務就只有一套配置文件,部署多少是實例都不需要變動,只需要在啟動實例時傳入設置即可;