【教程】IDEA创建SpringCloud+Eureka+Zuul ( 四 ) Eureka server高可用配置
代码参考:https://gitee.com/guanweiCode/SpringCloudGw
1 启动多个Eureka 服务
2复制多个 相当于创建多个容器 tomcat
3 改端口 这三个端口不能重复
EurekaServerApplication1
-Dserver.port=8699
EurekaServerApplication2
-Dserver.port=8698
EurekaServerApplication3
-Dserver.port=8697
4
修改配置application.yml 不配置8699 是因为当前启动的服务 EurekaServerApplication1 的端口为8699
#server:
# port: 8700 #端口
server:
port: 8699 #端口
eureka:
# instance:
# hostname: localhost
client:
register-with-eureka: false #自身 不再向eureka注册
fetch-registry: false #启动时禁用client的注册
service-url:
defaultZone: http://localhost:8699/eureka,http://localhost:8698/eureka,http://localhost:8697/eureka
spring:
application:
name: eureka-server #指定应用名称
5
启动 EurekaServerApplication1 8699
6 同理修改端口为 8699 与 8697 然后启动 EurekaServerApplication2
7 同理修改端口为 8699 与 8698 然后启动 EurekaServerApplication3
8 然后分别访问 1 2 3 的对应端口地址
9 打开服务提供方 服务者 springcloud-eureka-servicesupport 配置yml 端口为1 2 3
server:
port: 8701 #服务提供方
eureka:
# instance:
# hostname: localhost
client:
service-url:
# 指定当前eureka客户端的注册地址 端口8700对应server的端口
# defaultZone: http://${eureka.instance.hostname}:8700/eureka
defaultZone: http://localhost:8699/eureka,http://localhost:8698/eureka,http://localhost:8697/eureka
spring:
application:
name: eureka-service #指定应用名称
10 启动 服务者 springcloud-eureka-servicesupport
11 虽然只注册了 8699一个端口 但是在另外 1 2 3对应的服务都可以看到
12 接下来向服务消费方中添加服务注册者的端口号, 这样server挂掉任何一个的时候, 都能有其他的server也能获取服务列表
server:
port: 8702 #服务消费方 消费者
eureka:
# instance:
# hostname: localhost
client:
service-url:
# 指定当前eureka客户端的注册地址 端口8700对应server的端口
# defaultZone: http://${eureka.instance.hostname}:8700/eureka
defaultZone: http://localhost:8699/eureka,http://localhost:8698/eureka,http://localhost:8697/eureka
spring:
application:
name: eureka-consumer #指定应用名称
13 测试 启动消费者服务 springcloud-eureka-c并访问接口 参考 三.一
14 关掉另外两台server试试能否访问
关闭后
还可以请求到
15 关闭所有 server 再次尝试
关闭后
关闭所有server还可以请求到, 因为 serviceconsume 已经缓存了服务列表, 如果重启serviceconsume 在访问就不行了, 因为缓存重启后会被清空
16 配置服务方 springcloud-eureka-servicesupport yml
server:
port: 8701 #服务提供方
eureka:
# instance:
# hostname: localhost
client:
service-url:
# 指定当前eureka客户端的注册地址 端口8700对应server的端口
# defaultZone: http://${eureka.instance.hostname}:8700/eureka
defaultZone: http://localhost:8699/eureka,http://localhost:8698/eureka,http://localhost:8697/eureka
spring:
application:
name: eureka-service #指定应用名称