eureka也是一个服务,如果eureka所在的服务器宕机了,那么整个服务就崩溃了,完全不能使用。
所以我们需要实现 Eureka的高可用,搭建Eureka集群。
本项目基于 SpringCloud系列(二)Eureka详解 中的代码,使用 IDEA 开发工具
这里只介绍一下搭建方式,使用本地映射进行模拟,就不专门搞3个服务器了,下面介绍3种实现方式
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)注释掉 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 包
3)打包成功,出现以下内容,记住 jar包的路径
4)打开命令控制台,进入 jar 包的存放路径
5)启动项目
输入:
cd H:\workspace\springcloud\springcloud01-eurekaserver-8888\target
java -jar springcloud01-eurekaserver-8888-1.0-SNAPSHOT.jar --spring.profiles.active=eureka-8887
等待服务启动
可以看到服务已经启动成功
6)启动剩下的2个项目
新建两个窗口
按照之前的方式,逐个启动即可
java -jar springcloud01-eurekaserver-8888-1.0-SNAPSHOT.jar --spring.profiles.active=eureka-8888
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/
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 项目
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)准备再次启动
打开编辑器
新建SpringBoot启动类
配置 eureka 的启动
启动项目
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/
6)测试
再次访问对应页面
http://eureka-8887:8887/
http://eureka-8888:8888/
http://eureka-8889:8889/
能看到和jar包方式测试一样的结果,这里不再展示了
1)直接复制 eureka-8888,粘贴2个项目出来,修改名字,如下图所示
2)加载刚刚复制的项目
依次添加两个项目,点击ok ,一路next即可,最后apply
3)分别修改 properties 文件
按照上文代码,修改端口和主机名即可
4)启动项目
直接进入 main 方法,逐个启动即可
5)测试
访问对应页面
http://eureka-8887:8887/
http://eureka-8888:8888/
http://eureka-8889:8889/
能看到和jar包方式测试一样的结果,这里不再展示了
3种搭建方式就介绍完了,使用哪一种都可以
3种方式比较起来: