博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SpringCloud---(3)实现Eureka的高可用
阅读量:3950 次
发布时间:2019-05-24

本文共 2276 字,大约阅读时间需要 7 分钟。

上一篇:

  上一篇文章记录了搭建eureka servereureka client,单个client往单个eureka上面注册,这一篇文章介绍一下如何实现eureka的高可用。本篇文章的项目案例是在上一篇文章的基础上进行拓展

  说到高可用,第一反应就是加服务器嘛,让两个eureka server之间相互注册不就ok了,下面试一下能不能行。

1.新建两个eureka server项目。

在这里插入图片描述

在项目的application启动类上面添加注解@EnableEurekaServer,搭建项目可以参考。

@SpringBootApplication@EnableEurekaServerpublic class Server2Application {
public static void main(String[] args) {
SpringApplication.run(Server2Application.class, args); }}

然后在配置文件中对eureka server进行相应的配置:

#设置项目的端口server:  port: 8084#设置注册eureka server 的urleureka:  client:    service-url:      defaultZone: http://localhost:8082/eureka/      #关闭eureka server自我保护机制(开发环境可以关闭,但是生产环境不建议关闭)  server:    enable-self-preservation: false

注意在上面的配置文件中,项目的端口是8084,但是注册url的端口是8082,意思就是将端口为8084的eureka server 注册到端口为8082的eureka server上面。所以我们还需要再创建一个端口为8082的eureka server

  以上面相同的方式再创建一个项目,但是再配置文件中做如下配置:

#设置项目端口server:  port: 8082#设置 eureka 注册中心urleureka:  client:    service-url:      defaultZone: http://localhost:8084/eureka/         #关闭eureka server自我保护机制(开发环境可以关闭,但是生产环境不建议关闭)  server:    enable-self-preservation: false

我们可以发现,在第二个项目中,他的端口为8082,但是注册的url为8084,也就是说8082和8084之间做了相互注册。

2.新建一个eureka client项目。

新建eureka client项目的步骤和方法参考,这里不再进行赘述,eureka client项目的配置文件如下:

#设置项目的端口号server:  port: 8083#设置应用的名称spring:	  application:    name: client#设置要注册的url(也就是 eureka server的url地址)eureka:  client:    service-url:      defaultZone: http://localhost:8082/eureka/

从配置文件中,我们可以知道eureka client的注册url是8082端口,那么我们在访问localhost:8082端口的时候,在eureka控制台上面应该是可以看到8083的eureka client的:

在这里插入图片描述
然后我们再访问一下http://localhost:8084/
在这里插入图片描述
发现两个eureka server的控制台中都能够看到端口为8083的eureka client,但是我们的在eureka client的配置文件中只是向8082端口的eureka server注册了,说明8082和8084两个eureka server之间互相注册了之后,在他们上面进行注册的eureka client信息会被同步。如果此时我们关闭端口为8082的服务,然后再访问一下http://localhost:8084/
在这里插入图片描述

发现刷新页面之后,client还是会在eureka控制台显示,这是eureka的心跳机制的原因,重启一下8084项目之后,控制台就不显示这个client了。

  既然eureka server要实现高可用,那肯定是希望server1宕机之后,client依然能够在server2上注册使用。我们可以在案例中端口为8083的client项目中的配置文件再将端口为8084的eureka server的url写上,所以8083端口项目的配置文件如下:

#设置项目的端口号server:  port: 8083#设置应用的名称spring:  application:    name: client#设置要注册的url(也就是 eureka server的url地址)eureka:  client:    service-url:      defaultZone: http://localhost:8082/eureka/, http://localhost:8084/eureka/

这样配置之后,再关闭eureka server1之后,eureka client也能再eureka server2上面正常注册。

在这里插入图片描述

下一篇:

转载地址:http://gjhwi.baihongyu.com/

你可能感兴趣的文章
jQuery 实现input搜索框自动匹配------Sestid
查看>>
Js 实现回车键触发登录,并弹出需要输入信息------Sestid
查看>>
Js字符串和数组方法及使用------Sestid
查看>>
JavaScript常用算法(面试)------Sestid
查看>>
Js或者jQuery实现点击图片出现蒙层并将图片放大在蒙层上------Sestid
查看>>
Js,jQuery事件、效果大全------Sestid
查看>>
CSS块元素、内联元素、内联块元素详解------Sestid
查看>>
Js实现跟随鼠标移动的小球------Sestid
查看>>
HTML图像,链接,列表,表格等详细介绍------Sestid
查看>>
Js实现的俄罗斯方块小游戏------Sestid
查看>>
Js实现贪吃蛇小游戏------Sestid
查看>>
jQuery常用方法(持续更新)
查看>>
原生js实现自定义倒计时效果------Sestid
查看>>
原生js实现生成随机验证码=------Sestid
查看>>
js实现购物时选带属性的商品------Sestid
查看>>
点击出现对应界面(第二个界面可以选择显示内容)------Sestid
查看>>
Js实现炫酷仿抖罗盘时钟------Sestid
查看>>
vivo官网鼠标触碰图片拉长------Sestid
查看>>
canvas画布实现的集中效果
查看>>
Js实现点击置顶效果(带动画)
查看>>