eureka server集群(2个节点)

修改 eurekaserver工程

修改application.yml配置文件,如下:

server:
  port: 7001


eureka:
  instance:
    hostname: ${spring.cloud.client.ip-address} #eureka服务端的实例名称
    #prefer-ip-address: true
  client:
    register-with-eureka: false     #不向注册中心注册自己。
    fetch-registry: false     #false表示自己端就是注册中心,我的职责就是维护服务实例,并不需要去检索服务
    service-url:
      #与eureka server交互的地址查询服务和注册服务都需要依赖该地址
      defaultZone: http://192.168.0.200:7002/eureka/

注意:

  1. hostname: ${spring.cloud.client.ip-address} hostname不能相同,这里用本机ip作为hostname,否则要修改hosts文件,配置域名。这是eureka2.x写法
    eureka1.x写法:${spring.cloud.client.ipAddress}

  2. prefer-ip-address: true,确保机器优先使用IP而不是到hosts解析域名

  3. defaultZone:指向其他eureka server,如果有多个,用,分割
    如:defaultZone: http://127.0.0.1:7002/eureka/,http://192.168.0.100:7002/eureka/

创建 eurekaserver2 工程

主启动类、pom.xml与 eurekaserver 工程相同

application.yml配置文件,如下

server:
  port: 7002


eureka:
  instance:
    hostname: ${spring.cloud.client.ip-address} #eureka服务端的实例名称
#    prefer-ip-address: true
  client:
    register-with-eureka: false     #不向注册中心注册自己。
    fetch-registry: false     #false表示自己端就是注册中心,我的职责就是维护服务实例,并不需要去检索服务
    service-url:
      #与eureka server交互的地址查询服务和注册服务都需要依赖该地址
#      defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
      defaultZone: http://192.168.0.201:7001/eureka/

注意:
defaultZone:指向其他eureka server,如果有多个,用,分割

部署

注意这里容易混乱:

  • 由于eurekaserver工程配置其他eureka server的ip是192.168.0.200,所以 eurekaserver2 必须部署在ip是192.168.0.200的电脑上

  • 由于eurekaserver2工程配置其他eureka server的ip是192.168.0.201,所以 eurekaserver,必须部署在ip是192.168.0.201的电脑上

修改 notice工程

修改application.yml文件,如下:

eureka:
  client:
    register-with-eureka: true  #将自己注册到eureka server
    fetch-registry: true  #是否从eureka server 抓取已有的注册信息。单节点没用,集群必须设置true才能配合ribbon使用负载均衡
    service-url:
#      defaultZone: http://localhost:7001/eureka
      defaultZone: http://192.168.0.200:7002/eureka,http://192.168.0.201:7001/eureka
  instance:
    instance-id: ${spring.cloud.client.ip-address}:${server.port}
    prefer-ip-address: true

注意: 在defaultZone后面加上2个eureka server的url,由,分割

测试

先启动2个eureka server

然后启动notice服务

测试 1

打开浏览器访问 http://192.168.0.201:7001/ ,该服务是eurekaserver工程的,如下:

红框中192.168.0.200就是 eurekaserver工程 application.yml文件中配置的defaultZone

测试 2

打开浏览器访问 http://192.168.0.200:7002/ ,该服务是eurekaserver2工程的

测试 3

打开浏览器访问 http://192.168.0.201:8001/getNoticeById/1 ,测试notice服务能否正常运行


原文出处:/show_1EF5hyZOULEU.html