前言:
在前面的例子中,我們的eureka server都是單節(jié)點(diǎn)的,一旦該節(jié)點(diǎn)在生產(chǎn)中掛掉,就無法再提供服務(wù)的注冊,為了保證注冊中心的高可用,在生產(chǎn)中一般采用多節(jié)點(diǎn)的服務(wù)注冊中心。
一、在hosts文件中加入如下配置
1
2
|
127.0 . 0.1 peer1 127.0 . 0.1 peer2 |
二、修改application.yml配置文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
--- spring: profiles: peer1 # 指定profile=peer1 application: name: eureka-server1 server: port: 8761 # 注冊服務(wù)的端口號(hào) eureka: instance: hostname: peer1 # 指定當(dāng)profile=peer1時(shí),主機(jī)名 client: serviceurl: defaultzone: http: //peer2:8762/eureka/ # 將自己注冊到peer2這個(gè)eureka上面去 --- spring: profiles: peer2 application: name: eureka-server2 server: port: 8762 eureka: instance: hostname: peer2 client: serviceurl: defaultzone: http: //peer1:8761/eureka/ # 服務(wù)注冊地址,將自己注冊到peer2上去 |
三、打jar包
在命令行輸入如下命令:
1
|
mvn clean package |
四、執(zhí)行jar
1
2
|
java -jar springcloud-eureka-ha- 0.0 . 1 -snapshot.jar --spring.profiles.active=peer1 java -jar springcloud-eureka-ha- 0.0 . 1 -snapshot.jar --spring.profiles.active=peer2 |
五、訪問eureka server
在瀏覽器輸入:http://localhost:8761/
在瀏覽器輸入:http://localhost:8762/
發(fā)現(xiàn)有點(diǎn)問題:registered-replicas和unavailable-replicas中都存在eureka server,并且當(dāng)前的eureka server不可用,原因如下:在注冊的時(shí)候,配置文件中的
1
2
3
|
spring: application: name: eureka-server2 |
必須一致,下面我們將兩個(gè)eureka server中的name都改成eureka-server,結(jié)果如下:
六、將服務(wù)注冊到雙eureka server上
只需修改defaultzone即可
1
2
|
# eureka server注冊服務(wù)的地址 eureka.client.service-url.defaultzone=http: //peer1:8761/eureka/,http://peer2:8762/eureka |
七、高可用驗(yàn)證
1、在瀏覽器輸入:http://localhost:7902/user/1
結(jié)果如下:
{"id":1,"username":"user1","name":"張三","age":20,"balance":100.00}
說明服務(wù)可用
2、將eureka server2停掉,發(fā)現(xiàn)server2不可用
3、再次在瀏覽器中輸入:http://localhost:7902/user/1
{"id":1,"username":"user1","name":"張三","age":20,"balance":100.00}
通過上面幾個(gè)步驟,就可以實(shí)現(xiàn)eureka的ha了,有些小坑要注意一下!
以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持服務(wù)器之家。
原文鏈接:http://blog.csdn.net/liuchuanhong1/article/details/54895070