zoukankan      html  css  js  c++  java
  • Eureka 集群高可用配置.

    SERVER:1


    server:
      port: 1111
    eureka:
      instance:
        hostname: ${spring.cloud.client.ip-address}
        instance-id: ${eureka.instance.hostname}:${server.port}
        preferIpAddress: true      #指定通过IP注册,一般服务集群时配置,需要ip-address参数一起设置(保证hostName和ip-address一样),以免eureka管理页面出现不可用分片提示信息(unavailable-replicas),服务的注册默认是通过hostName注册的,当判断注册的hostName和服务
        ip-address: ${EUREKA_IP:${eureka.instance.hostname}} #强制指定eureka的ip地址
      client:
        service-url:
          defaultZone: http://${eureka.instance.hostname}:1112/eureka/
        fetch-registry: true        #集群时需要强制手动指定,fetch-registry、register-with-eureka都需要设置为true
        register-with-eureka: true  #集群时需要强制手动指定,fetch-registry、register-with-eureka都需要设置为true
    SERVER:2

    server:
      port: 1112
    eureka:
      instance:
        hostname: ${spring.cloud.client.ip-address}
        instance-id: ${eureka.instance.hostname}:${server.port} #eureka server管理页面显示的服务状态
        preferIpAddress: true                                 #指定通过IP注册,服务集群高可用必须配置,需要ip-address参数一起设置,以免eureka管理页面出现不可用分片提示信息(unavailable-replicas)
        ip-address: ${EUREKA_IP:${eureka.instance.hostname}}  #强制指定eureka的ip地址
      client:
        service-url:
          defaultZone:  http://${eureka.instance.hostname}:1111/eureka/
        fetch-registry: true        #集群时需要强制手动指定,fetch-registry、register-with-eureka都需要设置为true
        register-with-eureka: true  #集群时需要强制手动指定,fetch-registry、register-with-eureka都需要设置为true

    需要注意的是

    Eureka高可用部署,启动多个注册中心后,节点均出现在unavailable-replicas,查阅各类资料测试,提供方案:

    1.eureka.client.serviceUrl.defaultZone配置项的地址,不能使用localhost,要使用ip或域名

    2.spring.application.name要一致(这个个人测试默认不配也可以)

    3. fetch-registry、register-with-eureka 都需要设置为true,要不然集群服务器数据不同步,目前Spring Cloud 版本为 Finchley.RELEASE

    默认情况下,eureka client使用主机名(hostName)向注册中心注册。 

    当prefer-ip-address: true时 ,client使用的是ip向服务中心注册 ,但是默认获取的ip是 127.0.0.1。默认情况下 当 这个获取的ip 和 hostName 不同时 ,则产生不可用分片提示信息(unavailable-replicas),并且集群间的数据不会同步。

    所以要么指定 两个ip相同 ,就不会有提示了(指定ip-address和hostname相同)。

     
  • 相关阅读:
    Extjs Window用法详解 2 打印具体应用
    Extjs Window用法详解
    Ext.util.Format.date与Ext.Date.format区别, 转换时间戳
    Ext.util.Format.date 时间格式的设置与转换
    Singleton单例对象的使用
    C# Message类的属性Msg所关联的消息ID
    C#实现语音朗读功能
    iOS:二叉树多级表格的使用,使用三方库TreeTableView-master实现对json解析数据的递归遍历整理成树状结构
    iOS: 删除真机测试的Provisioning Profile后,在Code Singing中出现entitlements.plist文件无效,解决办法如下:
    iOS:Xcode7以上版本安装镜像文件.dmg
  • 原文地址:https://www.cnblogs.com/eastday/p/10449683.html
Copyright © 2011-2022 走看看