SpringCloud(2)-配置高可用的eureka服务注册中心

高可用的eureka服务注册中心

简单的介绍

在我们平时的开发中,因为是分布式的系统,我们需要考虑到任何一个系统都应该具备高可用。而高可用是指,当我们某个服务器宕机了,我们还能够正常的去访问我们的服务,这就需要搭建集群的方式去实现该效果,当master宕机了,我们的slave可以立即取代master,来提供服务,这就是高可用。

为什么我们需要搭建高可用的服务注册中心

在上一个博客中,我搭建了一个eureka服务注册中心,它能够正常工作,能够提供它的功能,也可以满足我们的需求。但是在我们实际开发中,如果采用单机版的eureka服务注册中心,如果运行这个服务注册中心的服务器突然发生问题了,或者程序崩了,那我们所有的分布式服务的提供者,消费者都不能够正常的去执行相应的逻辑,虽然我们可以采用断路器来解决该问题,但是并不能提供一个正确的结果。所以,我们需要搭建一个集群版的服务注册中心。

准备

我先搭建3个节点的服务注册中心,一个master,两个slave来搭建相应的服务注册中心

搭建

搭建master服务注册中心
  1. 我先创建一个eureka-master的项目,然后在pom.xml文件中引入以下依赖

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
    </dependency>
    
  2. 在master项目的application.properties配置文件中配置如下

    spring.application.name=master
    server.port=81
    eureka.instance.hostname=master
    eureka.client.service-url.defaultZone=http://slave01:82/eureka/,http://slave02:83/eureka/
    eureka.client.register-with-eureka=false
    eureka.client.fetch-registry=false
    
  3. 同样的步骤创建slave01,slave02项目
    slaveo1的配置文件如下

    spring.application.name=slave01
    server.port=82
    eureka.instance.hostname=slave01
    eureka.client.service-url.defaultZone=http://slave02:83/eureka/,http://master:81/eureka/
    eureka.client.register-with-eureka=false
    eureka.client.fetch-registry=false
    
  4. 修改windows的hosts文件

    127.0.0.1       master
    127.0.0.1       slave01
    127.0.0.1       slave02
    
  5. 依次启动程序,然后随便访问一个服务注册中心,效果图如下所示
    这里写图片描述
    我们可以看到集群搭建成功了!!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章