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

相关文章
相关标签/搜索