zoukankan      html  css  js  c++  java
  • Eureka 集群搭建(HA)原理与实战

    Eureka 高可用集群(HA)

    在分布式系统中,任何的地方存在单点,整个体系就不是高可用的,Eureka 也一样,在上面的架构图中Eureka Server不是以单点存在的,而是以集群的方式对外提供服务。

    为了提供高可用性,说白了就是保证机器挂了还是可以服务注册的能力,一般都不会将注册中心部署到一台机器上,而是采取多台机器部署,集群化管理。

    注册中心的集群化,最简单的做法就是:

    将注册中心相互注册,但是不开启检索服务的能力(fetch-registry: false

    这也是Eureka的特性使得的,因为Eureka身兼三职,其中一职(Eureka Client)天然就是客户端角色。

    模拟的实验,修改hosts文件,模拟三个节点,添加对应的映射:

    127.0.0.1 register-master
    127.0.0.1 register-salve1
    127.0.0.1 register-salve2
    

    主节点的配置为:

    修改配置文件
    master:
    #服务端口
    server:
      port: 8880
    
    eureka:
      instance:
        hostname: register-master
      client:
        #通过设置fetch-registry与register-with-eureka 表明自己是一个eureka服务
        fetch-registry: false
        register-with-eureka: true
        #注册register-salve1,register-salve2做注册中心集群
        service-url:
          defaultZone: http://register-salve1:8881/eureka/,http://register-salve2:8882/eureka/
    
    spring:
      application:
        name: register-center
    

    salve1节点的配置为:

    #服务端口
    server:
      port: 8882
    
    eureka:
      instance:
        hostname: register-salve1
      client:
        #通过设置fetch-registry与register-with-eureka 表明自己是一个eureka服务
        fetch-registry: false
    	register-with-eureka: true
        #注册register-salve1,register-salve2做注册中心集群
        service-url:
          defaultZone: http://register-master:8880/eureka/,http://register-salve2:8881/eureka/
    
    spring:
      application:
        name: register-center
    

    salve2节点的配置为:

    #服务端口
    server:
      port: 8882
    
    eureka:
      instance:
        hostname: register-salve2
      client:
        #通过设置fetch-registry与register-with-eureka 表明自己是一个eureka服务
        fetch-registry: false
    	register-with-eureka: true
        #注册register-salve1,register-salve2做注册中心集群
        service-url:
          defaultZone: http://register-master:8880/eureka/,http://register-salve1:8881/eureka/
    
    spring:
      application:
        name: register-center
    

    主节点的控制台界面:

    slave1节点的控制台界面:

    slave2节点的控制台界面:

    高可用原理

    eureka:
     client:
       # false表示不向注册中心注册自己
       register-with-eureka: false
       # false表示自己端就是注册中心,我的职责就是维护服务实例,并不需要去检索服务
       fetch-registry: false
       service-url:
         #设置与Eureka Server交互的地址查询服务和注册服务都需要依赖这个地址(单机)。
         defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
    
    
    • 向注册中心注册自己

      register-with-eureka: true

    • 自己端就是注册中心,我的职责就是维护服务实例,并不需要去检索服务

    fetch-registry: false

  • 相关阅读:
    Scrum立会报告+燃尽图(Final阶段第一次)
    事后诸葛亮会议
    互评Beta版本
    Beta阶段基于spec评论作品
    Beta阶段基于NABCD评论作品
    作业 20181009-9 每周例行报告
    作业 20180925-1 每周例行报告
    作业 20180925-4 单元测试
    作业 20180925-6 四则运算试题生成
    作业 20180925 -2 功能测试
  • 原文地址:https://www.cnblogs.com/crazymakercircle/p/14255459.html
Copyright © 2011-2022 走看看