SpringCloud系列(三)Eureka搭建集群实现高可用(三种方式)

文章目录

    • 搭建方式
      • 0、修改本地映射文件
      • 1、jar包的方式
      • 2、多次启动的方式
      • 3、新增2个项目的方式
    • 小结

eureka也是一个服务,如果eureka所在的服务器宕机了,那么整个服务就崩溃了,完全不能使用。

所以我们需要实现 Eureka的高可用,搭建Eureka集群。

本项目基于 SpringCloud系列(二)Eureka详解 中的代码,使用 IDEA 开发工具

这里只介绍一下搭建方式,使用本地映射进行模拟,就不专门搞3个服务器了,下面介绍3种实现方式

搭建方式

0、修改本地映射文件

windows环境下:打开C:\Windows\System32\drivers\etc 文件夹

修改 hosts 文件(可能会有权限问题,请自行解决),添加如下内容

127.0.0.1       eureka-8888
127.0.0.1       eureka-8887
127.0.0.1       eureka-8889

1、jar包的方式

1)注释掉 eureka服务中 application.properties 文件所有内容,创建 application.yml 文件,添加如下内容

spring:
  application:
    name: eureka-server

---
spring:
  profiles: eureka-8888

server:
  port: 8888
eureka:
  instance:
    hostname: eureka-8888
  client:
    fetch-registry: false
    register-with-eureka: false
    service-url:
      defaultZone: http://eureka-8887:8887/eureka,http://eureka-8889:8889/eureka


---
spring:
  profiles: eureka-8889

server:
  port: 8889
eureka:
  instance:
    hostname: eureka-8889
  client:
    fetch-registry: false
    register-with-eureka: false
    service-url:
      defaultZone: http://eureka-8888:8888/eureka,http://eureka-8887:8887/eureka

---
spring:
  profiles: eureka-8887

server:
  port: 8887
eureka:
  instance:
    hostname: eureka-8887
  client:
    fetch-registry: false
    register-with-eureka: false
    service-url:
      defaultZone: http://eureka-8888:8888/eureka,http://eureka-8889:8889/eureka

2)使用 maven 插件,将该项目打成 jar 包

SpringCloud系列(三)Eureka搭建集群实现高可用(三种方式)_第1张图片

3)打包成功,出现以下内容,记住 jar包的路径

SpringCloud系列(三)Eureka搭建集群实现高可用(三种方式)_第2张图片

4)打开命令控制台,进入 jar 包的存放路径

SpringCloud系列(三)Eureka搭建集群实现高可用(三种方式)_第3张图片

5)启动项目

输入:

cd H:\workspace\springcloud\springcloud01-eurekaserver-8888\target

java -jar springcloud01-eurekaserver-8888-1.0-SNAPSHOT.jar --spring.profiles.active=eureka-8887

在这里插入图片描述

等待服务启动

SpringCloud系列(三)Eureka搭建集群实现高可用(三种方式)_第4张图片

可以看到服务已经启动成功

6)启动剩下的2个项目

新建两个窗口

SpringCloud系列(三)Eureka搭建集群实现高可用(三种方式)_第5张图片

按照之前的方式,逐个启动即可

java -jar springcloud01-eurekaserver-8888-1.0-SNAPSHOT.jar --spring.profiles.active=eureka-8888

SpringCloud系列(三)Eureka搭建集群实现高可用(三种方式)_第6张图片

java -jar springcloud01-eurekaserver-8888-1.0-SNAPSHOT.jar --spring.profiles.active=eureka-8889

在这里插入图片描述

7)查看集群是否正常

http://eureka-8887:8887/
http://eureka-8888:8888/
http://eureka-8889:8889/

SpringCloud系列(三)Eureka搭建集群实现高可用(三种方式)_第7张图片

SpringCloud系列(三)Eureka搭建集群实现高可用(三种方式)_第8张图片

SpringCloud系列(三)Eureka搭建集群实现高可用(三种方式)_第9张图片

2、多次启动的方式

1)注释yml文件,使用properties文件

server.port=8888
spring.application.name=eureka-server

eureka.instance.hostname=eureka-8888
eureka.client.fetch-registry=false
eureka.client.register-with-eureka=false
eureka.client.service-url.defaultZone=http://eureka-8889:8889/eureka/,http://eureka-8887:8887/eureka/

2)直接启动 eureka 项目

SpringCloud系列(三)Eureka搭建集群实现高可用(三种方式)_第10张图片

3)修改端口和主机名

server.port=8887
spring.application.name=eureka-server

eureka.instance.hostname=eureka-8887
eureka.client.fetch-registry=false
eureka.client.register-with-eureka=false
eureka.client.service-url.defaultZone=http://eureka-8889:8889/eureka/,http://eureka-8888:8888/eureka/

4)准备再次启动

打开编辑器

SpringCloud系列(三)Eureka搭建集群实现高可用(三种方式)_第11张图片

新建SpringBoot启动类

SpringCloud系列(三)Eureka搭建集群实现高可用(三种方式)_第12张图片

配置 eureka 的启动

SpringCloud系列(三)Eureka搭建集群实现高可用(三种方式)_第13张图片

启动项目

SpringCloud系列(三)Eureka搭建集群实现高可用(三种方式)_第14张图片
5)按照此方法,启动第三个服务

server.port=8889
spring.application.name=eureka-server

eureka.instance.hostname=eureka-8889
eureka.client.fetch-registry=false
eureka.client.register-with-eureka=false
eureka.client.service-url.defaultZone=http://eureka-8887:8887/eureka/,http://eureka-8888:8888/eureka/

SpringCloud系列(三)Eureka搭建集群实现高可用(三种方式)_第15张图片

6)测试

再次访问对应页面

http://eureka-8887:8887/
http://eureka-8888:8888/
http://eureka-8889:8889/

能看到和jar包方式测试一样的结果,这里不再展示了

3、新增2个项目的方式

1)直接复制 eureka-8888,粘贴2个项目出来,修改名字,如下图所示

SpringCloud系列(三)Eureka搭建集群实现高可用(三种方式)_第16张图片

2)加载刚刚复制的项目

SpringCloud系列(三)Eureka搭建集群实现高可用(三种方式)_第17张图片

SpringCloud系列(三)Eureka搭建集群实现高可用(三种方式)_第18张图片

依次添加两个项目,点击ok ,一路next即可,最后apply

3)分别修改 properties 文件

按照上文代码,修改端口和主机名即可

SpringCloud系列(三)Eureka搭建集群实现高可用(三种方式)_第19张图片

4)启动项目

直接进入 main 方法,逐个启动即可

SpringCloud系列(三)Eureka搭建集群实现高可用(三种方式)_第20张图片

5)测试

访问对应页面

http://eureka-8887:8887/
http://eureka-8888:8888/
http://eureka-8889:8889/

能看到和jar包方式测试一样的结果,这里不再展示了

小结

3种搭建方式就介绍完了,使用哪一种都可以

3种方式比较起来:

  1. 第一种方式,操作起来相对来说比较麻烦,如果修改eureka项目,需要重新打包;
  2. 第二种方式最简单,但是如果修改eureka项目,需要重新启动的时候,需要边修改配置边启动项目;
  3. 第三种方式,看起来更加清晰,易于维护,就是比较占内存

你可能感兴趣的:(SpringCloud)