1.說明
下面這篇文章介紹了Eureka Server集群的啟動方法,
SpringCloud創建Eureka模塊集群
是通過jar包啟動時指定配置文件的方式實現的。
現在只有Eureka Server模塊的源碼,
介紹在Eclipse中直接啟動Eureka Server集群的方式,
下面演示啟動兩個Eureka Server實例組成集群。
2.復制工程的方法
常見的方法是把Eureka Server模塊復制,
然后修改對應的application.yml配置參數,
然后右鍵模塊中的主啟動類,
分別啟動兩個模塊就可以了,
這個方法不多做介紹,
很多Spring Cloud教學視頻用的就是這種方式。
3.復制配置文件的方法
把對應的配置文件復制一遍,
然后修改其中的參數,
每個實例啟動時通過啟動參數,
指定使用不同的配置文件,
即可實現啟動一套代碼啟動兩個實例。
指定配置文件啟動的參數有兩個:
spring.profiles.active
spring.config.location
上面兩個參數效果下面會詳細說明,
而Eclipse中配置啟動參數的方式也有兩種,
可以在Program arguments中配置參數,
也可以在VM arguments中配置參數。
4.配置文件說明1
復制Eureka Server集群的配置文件:
application-dev-1.yml
application-dev-2.yml
eureka-server-1對應的application-dev-1.yml:
server:
port: 7001
eureka:
instance:
hostname: eureka1
client:
register-with-eureka: false
fetch-registry: false
service-url:
defaultZone: http://eureka1:7001/eureka,http://eureka2:7002/eureka
server:
enable-self-preservation: false
eureka-server-2對應的application-dev-2.yml:
server:
port: 7002
eureka:
instance:
hostname: eureka2
client:
register-with-eureka: false
fetch-registry: false
service-url:
defaultZone: http://eureka1:7001/eureka,http://eureka2:7002/eureka
server:
enable-self-preservation: false
文件名必須是application-{profile}.yml格式,
且必須在src/main/resource目錄下,
這樣才能使用spring.profiles.active參數指定profile,
從而指定使用不同的配置文件。
5.spring.profiles.active配置在Program arguments中
首先在Eclipse中打開Boot Dashboard,
會自動發現微服務eureka-server,
右鍵eureka-server模塊,
出現如下菜單:

點擊Duplicate Conifg創建出兩個Eureka Server的實例,
修改名稱為eureka-server-1和eureka-server-2,
然后就可以分別配置啟動參數。
右鍵eureka-server-1,
點擊Open Config修改配置,
在Arguemts下面新增Program arguments參數:
--spring.profiles.active=dev-1

點擊Apply應用,
然后Close關閉。
同樣右鍵eureka-server-2修改配置:
--spring.profiles.active=dev-2

配置好啟動參數后,
啟動eureka-server-1和eureka-server-2實例即可:

6.spring.profiles.active配置在VM arguments中
和上面的步驟一樣,
新建eureka-server-3和eureka-server-4實例,
右鍵eureka-server-3,
點擊Open Config修改配置,
在Arguemts下面新增VM arguments參數:
-Dspring.profiles.active=dev-1

點擊Apply應用,
然后Close關閉。
同樣右鍵eureka-server-4修改配置:
-Dspring.profiles.active=dev-2

配置好啟動參數后,
啟動eureka-server-3和eureka-server-4實例即可。
7.spring.config.location配置在Program arguments中
和上面的步驟一樣,
新建eureka-server-5和eureka-server-6實例修改配置。
由於spring.config.location可以指定任意路徑下的任意名稱的配置文件,
這里新建eureka-server-dev-5.yml和eureka-server-dev-6.yml,
然后放到src/main/resource下的cluster目錄下。
--spring.config.location=classpath:cluster/eureka-server-dev-5.yml

--spring.config.location=classpath:cluster/eureka-server-dev-6.yml

8.spring.config.location配置在VM arguments中
和上面的步驟一樣,
新建eureka-server-7和eureka-server-8實例:
-Dspring.config.location=classpath:cluster/eureka-server-dev-5.yml

-Dspring.config.location=classpath:cluster/eureka-server-dev-5.yml

對應的集群啟動成功:

9.只修改啟動參數的方法
不用復制配置文件,
只修改啟動參數的方法,
這種方式適合修改參數較少的情況,
比如一個微服務集群只有啟動端口不一樣,
其他參數都是一樣的,
可以使用同一個配置文件啟動,
然后在啟動參數中指定不同的端口即可。
和上面的步驟一樣,
新建server-1和server-2實例,
使用同一個application-dev.yml:
server:
port: 7007
修改server-1和server-2配置:
--server.port=7009
--server.port=7010
上面參數配置在Program arguments中,
同樣也可以配置在VM arguments中:
-Dserver.port=7009
-Dserver.port=7010