一:集群環境搭建
第一步:我們新建兩個注冊中心工程一個叫eureka_register_service_master、另外一個叫eureka_register_service_backup
eureka_register_service_master的application.properties配置如下
1
2
3
4
5
6
7
8
|
server.port=
7998
eureka.client.register-with-eureka=
false
eureka.client.fetch-registry=
false
spring.application.name=eureka-server
eureka.instance.hostname=master
eureka.client.serviceUrl.defaultZone=http:
//backup:7999/eureka/
#這里配置的是backup的地址
eureka_register_service_backup的application.properties配置如下
|
eureka_register_service_backup的application.properties配置如下
1
2
3
4
5
6
7
|
server.port=
7999
eureka.client.register-with-eureka=
false
eureka.client.fetch-registry=
false
spring.application.name=eureka-server
eureka.instance.hostname=backup
#這里配置的是master的地址
eureka.client.serviceUrl.defaultZone=http:
//master:7998/eureka/
|
上面的配置端口分別是
master端口是7998
backupr端口是7999
由於我用的是同一台機器所以需要綁定下host
127.0.0.1 master
127.0.0.1 backup
第二步:添加啟動文件分別是ApplicationMaster.java,ApplicationBackUp.java
里面代碼內容是一樣的
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
@EnableEurekaServer
@SpringBootApplication
public
class
ApplicationMaster {
public
static
void
main(String[] args) {
SpringApplication.run(ApplicationMaster.
class
, args);
}
}
@EnableEurekaServer
@SpringBootApplication
public
class
ApplicationBackUp {
public
static
void
main(String[] args) {
SpringApplication.run(ApplicationBackUp.
class
, args);
}
}
|
第三步:啟動
如果是jar啟動需要 加參數 --spring.profiles.active=matser或者 --spring.profiles.active=backup
第一種方法是通過jar命令啟動
1
2
3
|
java -jar eureka_register_service_matser-
1.0
.
0
.jar --spring.profiles.active=matser
java -jar eureka_register_service_backup-
1.0
.
0
.jar --spring.profiles.active=backup
|
第二種是通過eclipse點擊右鍵Run As 啟動
需要加入參數如下圖
第四步:查看界面
分別打開http://127.0.0.1:7998/ 和 http://127.0.0.1:7999/ 如下圖
通過上圖可以看
端口7998是matser它的registered-replicas指向了http://backup:7999/eureka/
端口7999是backup它的registered-replicas指向了http://master:7999/eureka/
注:有人會問為什么unavailable-replicas http://backup:7999/eureka/或者http://master:7999/eureka/ 那是因為我的配置吧
eureka.client.register-with-eureka設置成false 改成true就可以
二:服務端注冊
設置了多個注冊中心后,我們的服務配置不需要太多改動只需將biz-service-0工程的application.properties的serviceUrl修改下
1
|
eureka.client.serviceUrl.defaultZone=http:
//master:7998/eureka/,http://backup:7999/eureka/,
|
當然也可以綁定一個地址,eureka.client.serviceUrl.defaultZone=http://master:7998/eureka/ 這兩種綁定都可以
三:集群理解
雖然上面我們以雙節點作為例子,但是實際上因負載等原因,我們往往可能需要在生產環境構建多於兩個的Eureka Server節點。那么對於如何配置serviceUrl來讓集群中的服務進行同步,需要我們更深入的理解節點間的同步機制來做出決策。我們通過一張圖來理解集群