10万+IT人都在关注,史上最全面的企业级微服务快速开发学习教程:5分钟快速搭建一个高可用服务注册中心集群
前言:springcloud项目是基于springboot框架,我们演示的都创建springboot工程
上篇博客【Spring Cloud微服务连载(一):搭建服务注册中心以及注册服务提供者】中我们介绍了如何使用Spring Cloud搭建一个服务注册中心以及注册服务,但是搭建好的服务注册中心是一个单节点的服务注册中心,这样一旦这个注册中心发生了故障,那么整个服务就会瘫痪,所以我们需要一个高可用的服务注册中心,那么在Eureka中,我们通过搭建注册中心集群来解决这个问题。Eureka Server的高可用实际上就是将自己作为服务向其他服务注册中心注册自己,这样就会形成一组互相注册的服务注册中心,进而实现服务清单的互相同步,达到高可用的效果。OK,废话不多说,直接上干货,我们就来看看如何搭建高可用注册中心。
在上篇博客中,我们创建了一个名叫chenyun-cloud-eureka的服务注册中心,在本文中,我将向这个工程中添加两个配置文件application-peer1.yml和application-peer2.yml,进而将其分别启动。如下:
两个配置文件的内容分别如下:
application-peer1.yml:
spring:
application:
name: eureka-center
server:
port: 1111
eureka:
instance:
hostname: peer1
client:
register-with-eureka: false
fetch-registry: false
service-url:
defaultZone: http://peer2:1112/eureka/
application-peer2.yml:
spring:
application:
name: eureka-center
server:
port: 1112
eureka:
instance:
hostname: peer2
client:
register-with-eureka: false
fetch-registry: false
service-url:
defaultZone: http://peer1:1111/eureka/
关于这两个配置文件作以下几点说明:
1.在peer1的配置文件中,让它的service-url指向peer2,在peer2的配置文件中让它的service-url指向peer1
2.为了让peer1和peer2能够被正确的访问到,我们需要在C:\Windows\System32\drivers\etc
目录下的hosts文件总添加两行配置,如下:
127.0.0.1 peer1
127.0.0.1 peer2
3.由于peer1和peer2互相指向对方,实际上我们构建了一个双节点的服务注册中心集群
OK,现在我们把这个注册中心打包为jar文件,eclipse里打包方式如下:
生成结果在项目的target目录下面,如下:
生成jar文件之后,我们在命令行通过java命令来启动项目,在启动的时候我们设置采用不同的配置文件来启动项目,命令如下:
java -jar chenyun-cloud-eureka-0.0.1-SNAPSHOT.jar --spring.profiles.active=peer1
java -jar chenyun-cloud-eureka-0.0.1-SNAPSHOT.jar --spring.profiles.active=peer2
这两行命令表示我们分别采用application-peer1.yml和application-peer2.yml两个配置文件来启动应用,执行完这两个命令之后,我们的服务注册中心就启动了两个了,效果图如下:
我们可以看到,在peer1的节点的DS replicas我们已经看到peer2节点了,在peer2的DS replicas中我们也看到peer1节点了。
OK,现在我们的服务注册中心集群就搭建好了,然后我们可以做一个简单的测试
修改上篇博客中提到的chenyun-cloud-hello-service项目的配置文件,如下:
spring:
application:
name: hello-service
server:
port: 8881
eureka:
instance:
instance-id: ${spring.application.name}:${server.port}
prefer-ip-address: true
client:
service-url:
defaultZone: http://peer1:1111/eureka/,http://peer2:1112/eureka/
我们在service-url中添加了两个注册中心地址,两个地址中间用,隔开,OK,修改一下这里就可以了,接下来我们来启动这个项目,启动成功之后我们再去刷新http://localhost:1111和http://localhost:1112 两个页面,我们会发现我的服务提供者在这两个服务注册中心都注册了,如下:
更多JavaEE资料请关注下面公众号,欢迎广大开发者朋友一起交流。笔者电话(微信):18629374628