Spring Cloud 实践篇(二)之 Eureka Server 的集群搭建

上一篇我们讲述了 Eureka 的单节点搭建,但是通常情况在生产环境我们都会追求服务的高可用,显然单节点的服务满足不了我们的需求。那么 Eureka 的集群如何构建呢?下面我们一起来学习下。

Eureka 集群架构图Spring Cloud 实践篇(二)之 Eureka Server 的集群搭建_第1张图片

改造配置文件

首先,在上一节的基础上增加三个配置文件 application-eureka1.yml application-eureka2.yml application-eureka3.yml 如图:Spring Cloud 实践篇(二)之 Eureka Server 的集群搭建_第2张图片

修改application.yml文件,这一步主要是将fetch-registry register-with-eureka 这两个属性注释掉,当然也可以显式的指定为true ,然后增加了defaultZone属性的配置信息

spring:
  application:
    #服务名
    name: eureka-server
  profiles:
    active: eureka1
eureka:
  client:
    #是否从Eureka上获取注册信息
    #fetch-registry: false
    #是否注册自身到Eureka服务器
    #register-with-eureka: false
    serviceUrl:
      #注册中心地址
      defaultZone: http://pengq.eureka1:8081/eureka/,http://pengq.eureka2:8082/eureka/,http://pengq.eureka3:8083/eureka/
  #关闭自我保护机制,保证不可用服务及时踢出
  server:
    enable-self-preservation: false

(这里的 pengq.eureka1 是由于需要模拟三台机器的相互注册,修改 hosts文件得到的,如果一台单独的机器只部署一个eureka服务则不需此步骤),hosts文件如图:
在这里插入图片描述
fetch-registry:表示是否从eureka server获取注册信息,如果是单一节点,不需要同步其他eureka server节点,则可以设置为false,但此处为集群,应该设置为true,默认为true,可不设置。

register-with-eureka:表示是否将自己注册到eureka server,因为要构建集群环境,需要将自己注册到及群众,所以应该开启。默认为true,可不显式设置。

application-eureka1.yml 配置:

server:
  port: 8081
eureka:
  instance:
    instance-id: eureka1

application-eureka2.yml 配置:

server:
  port: 8082
eureka:
  instance:
    instance-id: eureka2

application-eureka3.yml 配置:

server:
  port: 8083
eureka:
  instance:
    instance-id: eureka3

下面我们启动这个项目,首先配置IDEA启动项,如图,这里我们配置了三个启动项,并分别把 spring.profiles.active 指向了 eureka1,eureka2,eureka3.
Spring Cloud 实践篇(二)之 Eureka Server 的集群搭建_第3张图片
将我们配置好的启动项分别启动,这样我的Eureka集群就搭建好了。如果需要在 Linux上搭建eureka集群,只需要将我们项目构建的jar 启动即可。启动命令如下:

nohuo java -jar spring-cloud-eureka-server-0.0.1-SNAPSHOT.jar --spring.profiles.active=eureka1 &

那么看一下我们的成果吧:
Spring Cloud 实践篇(二)之 Eureka Server 的集群搭建_第4张图片

Eureka Client 向集群注册

首先,我们依然在父工程下建立 spring-cloud-eureka-client 模块,然后在pom文件中引入依赖:

       
            org.springframework.boot
            spring-boot-starter-web
        

        
            org.springframework.cloud
            spring-cloud-starter-netflix-eureka-client
        

添加配置:

spring:
  application:
    #服务名
    name: eureka-client
eureka:
  client:
    serviceUrl:
      #注册中心地址
      defaultZone: http://pengq.eureka1:8081/eureka/,http://pengq.eureka2:8082/eureka/,http://pengq.eureka3:8083/eureka/
server:
  port: 8084

创建启动类,添加注解 @SpringBootApplication @EnableEurekaClient
Spring Cloud 实践篇(二)之 Eureka Server 的集群搭建_第5张图片
启动,再次刷新 Eureka 的 监控界面,看已经注册上了。
Spring Cloud 实践篇(二)之 Eureka Server 的集群搭建_第6张图片
源码地址:https://github.com/QUPENGRANDOM/spring-cloud-parent.git

你可能感兴趣的:(spring,cloud)