解决Eureka高可用配置时,available-replicas节点不够或没有,或节点都在unavailable-replicas下的情况。

    xiaoxiao2024-03-30  9

    一般在实际集群中,Eureka的注册中心前面是域名和IP。而测试搭建环境的时候在同一台主机搭建集群就无法满足这个情况。而Eureka是默认用ip去解析defaultZone。

    测试通过可用的集群   yml配置:

    spring: application: name: EurekaServer --- spring: profiles: EurekaServer_8699 server: port: 8699 # 指定当前eureka客户端的注册地址, eureka: instance: hostname: peer8699 preferIpAddress: false client: service-url: defaultZone: http://peer8699:8699/eureka,http://peer8698:8698/eureka,http://peer8697:8697/eureka register-with-eureka: true #自身 不在向eureka注册 fetch-registry: true #启动时禁用client的注册 --- spring: profiles: EurekaServer_8698 server: port: 8698 # 指定当前eureka客户端的注册地址, eureka: instance: hostname: peer8698 preferIpAddress: false client: service-url: defaultZone: http://peer8698:8698/eureka,http://peer8697:8697/eureka,http://peer8699:8699/eureka register-with-eureka: true #自身 不在向eureka注册 fetch-registry: true #启动时禁用client的注册 --- spring: profiles: EurekaServer_8697 server: port: 8697 # 指定当前eureka客户端的注册地址, eureka: instance: hostname: peer8697 preferIpAddress: false client: service-url: defaultZone: http://peer8697:8697/eureka,http://peer8699:8699/eureka,http://peer8698:8698/eureka register-with-eureka: true #自身 不在向eureka注册 fetch-registry: true #启动时禁用client的注册

    我们可以看见为了在同一个主机下能测试集群的高可用,我们需要自己映射域名,需要在windows中的修改hosts文件

    在win7中改变hosts的方法:https://mp.csdn.net/postedit/90563819

    我的hosts文件:

    改好后添加hostname,如上面yml中hostname的配置,这里给出配置片段:

    eureka:   instance:     hostname: peer8699     preferIpAddress: false

     第四行是关键:当我把preferIpAddress写成prefer-ip-address是无效的!需要驼峰原则!!并且在其他配置项也会出现 横杆无法配置的情况

    能正常使用的是 preferIpAddress: false

    这是配置Eureka在解析默认空间时不偏好IP地址来解析的方法,因为我们本地测试一台主机的情况没有多的IP地址来测试,只能通过在hosts中设置映射,使不同域名映射到一个本机ip(127.0.0.1 )来达到一个defaultZone中有多个配置中心挂载点的方式。这样配置后就能出现正常的配置了,所有挂载点都 有效了:

    最新回复(0)