之前的文章的讲解中已经初步实现了基于Eureka服务的注册和发现,虽然最后想要的效果已经实现了,但是实际的运用过程中注册中心一般必须具备高可用的特性,否则一旦注册中心挂了,整个系统就会崩溃掉,接下来我们会在第一部分的基础上搭建一个高可用的Eureka注册中心.
Eureka-server集群的搭建
依次创建三个基于springboot的springcloud工程,分别命名为springcloud_eureka_server01、springcloud_eureka_server02、springcloud_eureka_server03,创建完成后分别在各自的主启动类中加入@EnableEurekaServer注解,之后在各自的工程配置文件中进行eureka相关的配置.
springcloud_eureka_server01
server.port=8001
spring.application.name=eureka-server01
#集成Eureka相关配置
eureka.instance.hostname=127.0.0.1
#是否向注册中心注册
eureka.client.register-with-eureka=true
#是否检索服务
eureka.client.fetch-registry=true
#配置服务中心的内容,指定注册中心的位置
eureka.client.serviceUrl.defaultZone=http://${eureka.instance.hostname}:8002/eureka/,
http://${eureka.instance.hostname}:8003/eureka/
springcloud_eureka_server02
server.port=8002
spring.application.name=eureka-server02
#集成Eureka相关配置
eureka.instance.hostname=127.0.0.1
#是否向注册中心注册
eureka.client.register-with-eureka=true
#是否检索服务
eureka.client.fetch-registry=true
#配置服务中心的内容,指定注册中心的位置
eureka.client.serviceUrl.defaultZone=http://${eureka.instance.hostname}:8001/eureka/,
http://${eureka.instance.hostname}:8003/eureka/
springcloud_eureka_server03
server.port=8003
spring.application.name=eureka-server03
#集成Eureka相关配置
eureka.instance.hostname=127.0.0.1
#是否向注册中心注册
eureka.client.register-with-eureka=true
#是否检索服务
eureka.client.fetch-registry=true
#配置服务中心的内容,指定注册中心的位置
eureka.client.serviceUrl.defaultZone=http://${eureka.instance.hostname}:8001/eureka/,
http://${eureka.instance.hostname}:8002/eureka/
eureka-client服务的注册
同单个注册中心所不同,集群方式部署的时候我们需要将提供的服务注册中集群中去,唯一的变化就是需要将注服务注册的地址改变下,同样客户端也需要在主启动类中添加注解@EnableEurekaClient
eureka-client01的配置文件
server.port=9001
spring.application.name=eureka-client01
eureka.client.serviceUrl.defaultZone=http://127.0.0.1:8001/eureka/,
http://127.0.0.1:8002/eureka/,
http://127.0.0.1:8003/eureka/
eureka-client02的配置文件
server.port=9002
spring.application.name=eureka-client02
eureka.client.serviceUrl.defaultZone=http://127.0.0.1:8001/eureka/,
http://127.0.0.1:8002/eureka/,
http://127.0.0.1:8003/eureka/
eureka-client03的配置文件
server.port=9003
spring.application.name=eureka-client03
eureka.client.serviceUrl.defaultZone=http://127.0.0.1:8001/eureka/,
http://127.0.0.1:8002/eureka/,
http://127.0.0.1:8003/eureka/
maven配置文件
<properties>
<java.version>1.8</java.version>
<spring-cloud.version>2020.0.3</spring-cloud.version>
</properties>
<dependencies>
<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>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring-cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
注册效果
http://localhost:8001/
http://localhost:8002/
http://localhost:8003/