SpringCloud(三)Eureka注册中心实现高可用

前言:

spring-cloud为基础的微服务架构,全部的微服务都须要注册到注册中心,若是这个注册中心阻塞或者崩了,那么整个系统都没法继续正常提供服务,因此,这里就须要对注册中心进行集群,换言之,高可用(HA)java

前提:

阅读并完成第一个注册中心的项目,环境无需改变。本文是模拟的高可用能够复制两个注册中心的项目单独修改各自的配置文件达到一样的效果spring

修改hosts,在文件末添加两行以下:浏览器

127.0.0.1 peer1 127.0.0.1 peer2

推荐使用notepad++,若是是win10会提醒提权限,肯定,而后保存便可。架构

项目搭建:

打开注册中心的项目,在src/resources下建立一个application-peer1.propertiesapp

#应用名 spring.application.name=eureka-server #提供服务端口1111 server.port=1111 #提供服务的域名,这里在hosts文件中修改了 eureka.instance.hostname=peer1 #向第二个注册中心注册本身 eureka.client.service-url.defaultZone=http://peer2:1112/eureka/

在src/resources下建立一个application-peer2.propertiesmaven

#应用名称与第一个注册中心同样 spring.application.name=eureka-server #提供服务端口1112 server.port=1112 #提供服务的域名,这里在hosts文件中修改了 eureka.instance.hostname=peer2 #向第一个注册中心注册本身 eureka.client.service-url.defaultZone=http://peer1:1111/eureka/

本文使用idea进行测试,首先须要对这个项目进行打成jar包,由于在pom.xml中已经引入了maven编译工具和打包工具并指定打包格式为jar包,这里直接操做,屏幕右上方ide

 

打包完成,该jar包位于target文件夹下,如图微服务

 

 如图打开terminal,屏幕下方工具

打开terminal以后,由于jar包在target目录下,而当前目录为项目目录,因此先cd到target目录下,而后输入以下命令:测试

小技巧:输入命令的时候为了防止输错文件名,能够输入文件名的前几个字母,而后使用tab键进行自动补全

java -jar EurekaServerDemo-0.0.1-SNAPSHOT.jar --spring.profiles.active=peer1

输入完成此命令后,peer1配置文件的项目启动,如图

 

接下来咱们启动第二个项目,这里须要另开一个terminal,cd到target目录

注意:咱们这里用的是同一个项目,读者可使用两个项目进行测试,须要特别注意的是端口不要冲突了

 

java -jar EurekaServerDemo-0.0.1-SNAPSHOT.jar --spring.profiles.active=peer2

 

等待项目启动完成,查看有无报错。

测试

浏览器输入:localhost:1112进行查看,也能够输入localhost:1111进行查看

 

结语

在设置了多节点的注册中心后,实现了高可用,可是此时咱们的微服务应用仅仅是注册到这一个服务之中,因此,咱们须要将新节点的注册服务路径一样配到微服务应用中。

多节点间使用","分开,如图

 

这样微服务提供者从其中一个地方断开以后,由于在其余节点有注册,因此还能够提供服务,若是不想使用主机名进行访问注册中心,也可使用ip,可是须要先添加一条配置,该值默认false

eureka.instance.prefer-ip-address=true

 

 本文为做者实际操做记录,如需转载请注明出处

相关文章
相关标签/搜索