eureka-server集群部署

警告
本文最后更新于 2021-06-11 16:54,文中内容可能已过时。

机器分配

eureka1: 172.17.10.240 eureka2: 172.17.10.241 eureka3: 172.17.10.242

1.源码下载

2.添加eureka注解

1
2
3
4
5
6
7
cd /server/packages/
unzip eureka-server.zip
cd eureka-server/src/main/java/cn/soulchild/eurekaserver/

sed -i '4iimport org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;' EurekaServerApplication.java

sed -i '6i@EnableEurekaServer' EurekaServerApplication.java

3.修改配置文件

添加三个eureka的配置文件

 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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
cd /server/packages/eureka-server


cat > src/main/resources/application-eureka1.yml <<EOF
spring:
  application:
   name: eureka-server
server:
  port: 8761
eureka:
  instance:
    # 指定instance-id为ip:port的形式,在页面中显示的就是ip+port,不指定此选项显示主机名
    instance-id: ${spring.cloud.client.ip-address}:${server.port}
    # 这里使用ip的方式注册,使用hostname需要支持解析才行
    prefer-ip-address: true
  # 客户端配置
  client:
    # 是否将自己注册到注册中心
    register-with-eureka: true
    # 是否从注册中心获取信息
    fetch-registry: true
    serviceUrl:
      defaultZone: http://172.17.10.241:8761/eureka/,http://172.17.10.242:8761/eureka/
  # 控制eureka页面显示内容
  environment: "dev"
  datacenter: "bj-yz"
EOF

####################################################
cat > src/main/resources/application-eureka2.yml <<EOF
spring:
  application:
   name: eureka-server
server:
  port: 8761
eureka:
  instance:
    # 指定instance-id为ip:port的形式,在页面中显示的就是ip+port,不指定此选项显示主机名
    instance-id: ${spring.cloud.client.ip-address}:${server.port}
    # 这里使用ip的方式注册,使用hostname需要支持解析才行
    prefer-ip-address: true
  # 客户端配置
  client:
    # 是否将自己注册到注册中心
    register-with-eureka: false
    # 是否从注册中心获取信息
    fetch-registry: false
    serviceUrl:
      defaultZone: http://172.17.10.240:8761/eureka/,http://172.17.10.242:8761/eureka/
  # 控制eureka页面显示内容
  environment: "dev"
  datacenter: "bj-yz"
EOF

####################################################
cat > src/main/resources/application-eureka3.yml <<EOF
spring:
  application:
   name: eureka-server
server:
  port: 8761
eureka:
  instance:
    # 指定instance-id为ip:port的形式,在页面中显示的就是ip+port,不指定此选项显示主机名
    instance-id: ${spring.cloud.client.ip-address}:${server.port}
    # 这里使用ip的方式注册,使用hostname需要支持解析才行
    prefer-ip-address: true
  # 客户端配置
  client:
    # 是否将自己注册到注册中心
    register-with-eureka: false
    # 是否从注册中心获取信息
    fetch-registry: false
    serviceUrl:
      defaultZone: http://172.17.10.240:8761/eureka/,http://172.17.10.241:8761/eureka/
  # 控制eureka页面显示内容
  environment: "dev"
  datacenter: "bj-yz"
EOF

也可以将上面的三个文件合并成一个文件

 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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
vim src/main/resources/application.yml


spring:
  application:
   name: eureka-server
server:
  port: 8761
eureka:
  instance:
    # 指定instance-id为ip:port的形式,在页面中显示的就是ip+port,不指定此选项显示主机名
    instance-id: ${spring.cloud.client.ip-address}:${server.port}
    # 这里使用ip的方式注册,使用hostname需要支持解析才行
    prefer-ip-address: true
  # 客户端配置
  client:
    # 是否将自己注册到注册中心
    register-with-eureka: true
    # 是否从注册中心获取信息
    fetch-registry: true
---
spring:
  profiles: eureka1
eureka:
  client:
    serviceUrl:
      defaultZone: http://172.17.10.241:8761/eureka/,http://172.17.10.242:8761/eureka/
---
spring:
  profiles: eureka2
eureka:
  client:
   service-url:
     defaultZone: http://172.17.10.240:8761/eureka/,http://172.17.10.242:8761/eureka/
---
spring:
  profiles: eureka3
eureka:
  client:
   service-url:
     defaultZone: http://172.17.10.240:8761/eureka/,http://172.17.10.241:8761/eureka/

4.打包

1
./mvnw clean package

5.运行

三台机器运行各自的配置

1
2
3
4
5
6
# eureka1
java -Dspring.profiles.active=eureka1 -jar target/eureka-server-0.0.1-SNAPSHOT.jar
# eureka2
java -Dspring.profiles.active=eureka2 -jar target/eureka-server-0.0.1-SNAPSHOT.jar
# eureka3
java -Dspring.profiles.active=eureka3 -jar target/eureka-server-0.0.1-SNAPSHOT.jar

6.运行结果

53633-57774y6sww3.png
53633-57774y6sww3.png

29273-juglpz4gzn8.png
29273-juglpz4gzn8.png

12890-hna531w53h8.png
12890-hna531w53h8.png

7.注册服务测试

34361-bvz6ldxtlz.png
34361-bvz6ldxtlz.png

47197-1747uo6o48k.png
47197-1747uo6o48k.png

8.服务发现测试

66421-t9dvlrcayzc.png
66421-t9dvlrcayzc.png

请我喝杯水
SoulChild 微信号 微信号
SoulChild 微信打赏 微信打赏
0%