本文共 2276 字,大约阅读时间需要 7 分钟。
上一篇文章记录了搭建eureka server
和eureka client
,单个client往单个eureka上面注册,这一篇文章介绍一下如何实现eureka
的高可用。本篇文章的项目案例是在上一篇文章的基础上进行拓展
eureka server
之间相互注册不就ok了,下面试一下能不能行。 在项目的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之间做了相互注册。
新建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/