Eureka高可用集群搭建
1.为什么需要集群
如果只有一个注册中心服务器,会存在单点故障所以要集群部署。这样即使集群中某个节点出现宕机等故障,系统仍可以从其他节点拉取微服务地址,从而正常运行。
2.集群搭建
生产环境把Eureka部署多个服务器就ok了,开发阶段可以使用同一台主机不同端口号来模拟集群:
2.1 准备2个EurekaServer工程,需要相互注册
server1: 9000
server2: 9001
- EurekaServer1
application.yml
server:
port: 9000
spring:
application:
name: eureka-server
eureka:
client:
service-url:
#注册到9001
defaultZone: http://localhost:9001/eureka
- EurekaServer2
application.yml
server:
port: 9001
spring:
application:
#name值一致
name: eureka-server
eureka:
client:
service-url:
#注册到9000
defaultZone: http://localhost:9000/eureka
访问相应的url地址
2.2 将微服务注册到EurekaServer集群
由于EurekaServer之间信息是同步的,所以只要微服务注册到一个节点上,那么集群中的每个节点都拥有该微服务的信息。
但若微服务注册的1个节点发生故障,则注册失败,为了保证高可用,需要将每个微服务注册到多个节点上。
(1)service-provider
application.yml
server:
port: 8081
spring:
application:
name: service-consumer
eureka:
client:
service-url:
defaultZone: http://localhost:9000/eureka,http://localhost:9001/eureka #多个地址用,号隔开
其他服务配置方法相同。