接到师父安排的任务:微服务项目部署增加主备模式。有点慌,主备部署,是什么?
主备部署,就是字面意思,有主机,还有备用机。平常工作就是在主机上,备用机默默在背后同步主机的数据,时刻待命。再研究这个Eureka的主备,其实就是Eureka Server的高可用。在生产环境中,如果是单节点的部署模式,万一Eureka Server宕机,很可能影响其他服务之间的调用,严重影响整个系统的可用性,所以一般常常部署一个高可用的Eureka Server的集群。
Eureka Server可以通过运行多个实例并相互注册的方式实现高可用部署。
利用IDEA如何搭建呢?
1.新建一个SpringBoot项目
比较快捷的方式就是利用start.spring.io直接建一个eureka server的框架,但是这个网址常常访问过慢,或者压根儿就访问不到,那就只能自己建个maven项目,然后再在pom文件里配置了。
2.配置
a. 默认的配置文件application.properties内容如下:
server.port=1111
eureka.instance.hostname=localhost
eureka.client.register-with-eureka=true
eureka.client.fetch-registry=true
eureka.client.serviceUrl.defaultZone=http://${eureka.instance.hostname}:${server.port}/eureka/
其中 ,eureka.client.register-with-eureka和eureka.client.fetch-registry两个参数设置成true的时候,表示让服务注册中心注册自己。
b.新建application-peer1.properties和application-peer2.properties文件
application-peer1.properties文件内容如下:
spring.application.name=eurekaServer
server.port=1111
eureka.instance.hostname=peer1
eureka.client.serviceUrl.defaultZone=http://peer2:1112/eureka/
application-peer2.properties文件内容如下:
spring.application.name=eurekaServer
server.port=1112
eureka.instance.hostname=peer2
eureka.client.serviceUrl.defaultZone=http://peer1:1111/eureka/
spring.application.name用于指定注册到Eureka Server上的应用名称;
eureka.client.serviceUrl.defaultZone用于指定服务注册中心的地址。
c. 本机hosts文件(C:\Windows\System32\drivers\etc\hosts)里添加对peer1和peer2的转换,让上面配置的host形式的serviceUrl能在本地正确访问到:
127.0.0.1 peer1
127.0.0.1 peer2
3. 运行(同时运行两个节点peer1和peer2)
a.在IDEA中的实现方式
点击IDEA右上角启动的工具栏,选择Edit Configuration。
在Run/Debug Configuration界面上点击+,选择spring boot,分别再新建两个application,配置如下面几张图。其中,Active profiles设置分别为peer1和peer2,这是根据两个配置文件的后缀名写的。项目一旦启动,就是根据active属性的值去寻找对应的后缀名的配置文件。
启动peer1和peer2两个application。
可以看到两个节点已经成功相互注册了,不仅如此,他们还各自注册了自己。
b.使用批处理文件启动两个节点
在项目jar包路径下,一般是target的下,新建一个txt文档,通过spring.profiles.active属性来分别启动peer1和peer2。txt文档内容如下:
@echo off
start java -jar eurekaserver-0.0.1-SNAPSHOT.jar --spring.profiles.active=peer1
@echo off
start java -jar eurekaserver-0.0.1-SNAPSHOT.jar --spring.profiles.active=peer2
然后强制更改文件扩展名为.bat。
点击运行该批处理文件,可以看到同时启动了两个窗口。在浏览器中输入地址,也会出现上面展示的两个节点相互注册的eureka界面。
日ji。