Eureka的集羣高可用---SpringCloud(二)

一.前言

在前一篇文章中,咱們介紹了eureka服務註冊中心的使用,主要用途就是用於管理多個服務的多個實例,實現服務的高可用; 可是有人就會想到,服務都是能夠用的,可是若是個人服務註冊中心掛了,那麼是否是全部的服務都不可用了呢? 這時咱們就會想到對服務註冊中心作HA;html

二.註冊中心的高可用

還記得註冊中心的一條配置麼?spring

eureka.client.register-with-eureka: false

是否註冊到註冊中心,當咱們有多個註冊中心時,這條配置就有使用價值了; 咱們在新建一個module,名字爲EurekaServerBak,依賴等引入徹底相同,不一樣的是sever.port=8762; 將上面的配置改成true,且fetch-registry=true;app

EurekaServer配置以下:源碼分析

server:
          port: 8761 #端口號
        eureka:
          instance:
            hostname: peer1
            home-page-url: swagger-ui.html
          client:
            register-with-eureka: true
            fetch-registry: true
            service-url:
              defaultZone: http://peer1:8761/eureka/,http://peer2:8762/eureka/  
          server:
            enable-self-preservation: false
        spring:
          application:
            name: eureka-server  #應用名

EurekaServerBak配置以下:fetch

server:
             port: 8762 #端口號
           eureka:
             instance:
               hostname: peer2
               home-page-url: swagger-ui.html
             client:
               register-with-eureka: true
               fetch-registry: true
               service-url:
                 defaultZone: http://peer1:8761/eureka/,http://peer2:8762/eureka/  
             server:
               enable-self-preservation: false
           spring:
             application:
               name: eureka-server  #應用名

此時咱們須要配置一下host文件,將peer1和peer2分別解析爲本地地址127.0.0.1;爲什麼如此下面有說明;ui

也能夠點擊查看Spring Cloud Eureka 源碼分析(一)       服務端啓動過程 的3.1.3小節的源碼分析;url

這時分別啓動兩個服務,並打開eureka實例列表頁面,能夠看到兩個Eureka服務相互註冊在彼此了; 這時咱們啓動客戶端,會發如今兩個註冊中心都會有註冊記錄;spa

三.說明

1.問什麼要添加peer1,peer2做爲代替localhost?
 若是沒有這樣作,能夠試一下,你會發現一個服務實例只能註冊在一個eureka的註冊中心,沒法註冊到全部的註冊中心;
 分析緣由是由於eureka對hostname作了過濾,但沒有檢查port致使的;

這裏連接一篇文章,將eureka的心跳時間等作了簡單的解釋; http://fengyilin.iteye.com/blog/2367265;.net

相關文章
相關標籤/搜索