在SpringCloud系列之Eureka中介绍了如何搭建起Eureka Server以及创建Eureka Client(服务提供者)。在微服务架构中,Eureka Server作为服务注册与发现的核心组件,单机无法保证服务的高可用。因而在实际生产环境中通过实现Eureka Server集群部署来实现高可用性。
准备
开始之前,需要先创建Eureka Server和Eureka Client应用,具体方法详见:**SpringCloud系列之Eureka**。
配置Eureka Server
在项目的src/main/resource目录下创建application-cluster1.yml和application-cluster2.yml,两个文件的配置分别如下:
application-cluster1.yml
spring: |
application-cluster2.yml
spring: |
两个配置文件的主要差异就是,application-cluster1.yml中eureka.client.service-url.defaultZone配置的是cluster2的地址,而application-cluster2.yml中eureka.client.service-url.defaultZone配置的是cluster1的地址,另外就是启动的端口不同。
配置Eureka Client
在项目的src/main/resources目录下创建application-cluster.yml
application-cluster.yml
spring: |
将eureka.client.service-url.defaultZone设置为Eureka Server的cluster1和cluster2的地址,用逗号分隔。
验证集群
- 将Eureka Server应用的active profiles分别设置为cluster1和cluster2并启动:
cluster1
cluster2
⚠️注意:在非IDE中可以通过java启动参数修改active profiles: -Dspring.profiles.active=xxx
- 将Eureka Client应用的active profiles设置为cluster并启动:
- 最后,分别在浏览器中打开localhost:8761和localhost:8762:
localhost:8761
localhost:8762
可以看到Eureka Client(PROVIDER-APPLICATION)应用已经分别注册到两台Eureka Server上了。
当然,在实际生产环境中,建议部署3个或以上的Eureka Server节点,这时候Eureka Client最好配置2个或以上的Eureka Server节点作为defaultZone,以增加可靠性和稳定性。