eureka集羣高可用配置

譬如eureka.client.register-with-eureka和fetch-registry是否要配置,配不配區別在哪裏;eureka的客戶端添加service-url時,是否是須要把全部的eureka的server地址都寫上,仍是隻須要寫一個server就能夠了(由於server之間已經相互註冊了)?若是寫上了全部的server地址,那至關於將每一個client服務都往全部的server都添加了一遍,那還配置server間的相互註冊有什麼意義?spring

  • 兩個服務端配置:
server:
  port: 20001
eureka:
  instance:
    hostname: server1
  client:
    # 表示是否註冊自身到eureka服務器
    # register-with-eureka: false
    # 是否從eureka上獲取註冊信息
    # fetch-registry: false
    service-url:
      defaultZone: http://server2:20002/eureka/
server:
  port: 20002
eureka:
  instance:
    hostname: server2
  client:
    #register-with-eureka: false
    #fetch-registry: false
    service-url:
      defaultZone: http://server1:20001/eureka/
  • 客戶端配置:
    • defaultZone這裏表明eureka server的地址,
    • 不少文章在這裏會將全部的server都配置上去,用逗號分隔,
    • 咱們這裏只配置一個server1,而後測試一下若是server1掛掉了,服務中心還能不能起做用。
      • 能夠看到eureka_client已經在兩個server上都註冊上了,雖然咱們在client的yml裏default_zone只配置了server1。
      • 可是請注意:若是server1掛掉了,那麼後續的client就沒法再註冊上來,重啓Client後也沒法再註冊到eureka上來。
        • 這就是爲何不少人在Client端添加多個eureka地址的緣由!
        • 是避免本身註冊的eureka單點掛掉。
        • 只要本身註冊的eureka還在,那麼後續添加N個eureka的其餘server,全部註冊信息都會被複制過去。
spring:
  application:
    name: eureka_client
eureka:
  client:
    service-url:
      defaultZone: http://server1:20001/eureka/
相關文章
相關標籤/搜索