高可用的eureka服务注册中心
简单的介绍
在我们平时的开发中,因为是分布式的系统,我们需要考虑到任何一个系统都应该具备高可用。而高可用是指,当我们某个服务器宕机了,我们还能够正常的去访问我们的服务,这就需要搭建集群的方式去实现该效果,当master宕机了,我们的slave可以立即取代master,来提供服务,这就是高可用。
为什么我们需要搭建高可用的服务注册中心
在上一个博客中,我搭建了一个eureka服务注册中心,它能够正常工作,能够提供它的功能,也可以满足我们的需求。但是在我们实际开发中,如果采用单机版的eureka服务注册中心,如果运行这个服务注册中心的服务器突然发生问题了,或者程序崩了,那我们所有的分布式服务的提供者,消费者都不能够正常的去执行相应的逻辑,虽然我们可以采用断路器来解决该问题,但是并不能提供一个正确的结果。所以,我们需要搭建一个集群版的服务注册中心。
准备
我先搭建3个节点的服务注册中心,一个master,两个slave来搭建相应的服务注册中心
搭建
搭建master服务注册中心
我先创建一个eureka-master的项目,然后在pom.xml文件中引入以下依赖
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId> </dependency>
在master项目的application.properties配置文件中配置如下
spring.application.name=master server.port=81 eureka.instance.hostname=master eureka.client.service-url.defaultZone=http://slave01:82/eureka/,http://slave02:83/eureka/ eureka.client.register-with-eureka=false eureka.client.fetch-registry=false
同样的步骤创建slave01,slave02项目
slaveo1的配置文件如下spring.application.name=slave01 server.port=82 eureka.instance.hostname=slave01 eureka.client.service-url.defaultZone=http://slave02:83/eureka/,http://master:81/eureka/ eureka.client.register-with-eureka=false eureka.client.fetch-registry=false
修改windows的hosts文件
127.0.0.1 master 127.0.0.1 slave01 127.0.0.1 slave02
依次启动程序,然后随便访问一个服务注册中心,效果图如下所示
我们可以看到集群搭建成功了!!