一.集群搭建思路

每个区域一个Eureka集群区域,负责该区域内的服务实例。每个区域至少有一台Eureka服务器来处理区域故障

spring cloud 如何部署到多服务器 springcloud 部署几台服务器_服务器


Eureka分为Eureka Server和Eureka Client及服务端和客户端。Eureka Server为注册中心,是服务端,而服务提供者和消费者为客户端,消费者也可以是服务者,服务者也可以是消费者。同时Eureka Server在启动时默认会注册自己,成为一个服务,所以Eureka Server也是一个客户端,这是搭建Eureka集群的基础。

服务提供者向注册中心注册服务,并每隔30s发送一次心跳,如果Eureka在90s后还未收到服务提供者发来的心跳,那么它会认为该服务已经死亡就会注销这个服务。这个注销并不是立即注销,而是会在60s以后对在这个时间段内“死亡”的服务集中注销。如果立即注销的话,会给Eureka服务器造成巨大的压力

Eureka还具有自我保护机制,如果在15分钟内超过85%的节点都没有了心跳,那么Eureka就认为客户端于注册中心认为出了网络故障,所以不会再接收心跳,也不会删除服务。

客户端消费者会向注册中心拉取服务列表,因为每个服务器的承载量是有限的,所以同一个服务器会部署在多个服务器上,每个服务器上的服务都会去注册中心注册服务,他们会有相同的服务器名称但有不同的实例id,所以拉取的是服务列表。我们最终通过负载均衡来获取一个服务,这样可以均衡各个服务器上的服务。

二.Eureka集群的实现
1.修改配置文件Server-1

server:
  port: 8761
spring:
  application:
    name: eureka-server
eureka:  # 该项目向那个注册中心注册自己
  client:
    serviceUrl:
     defaultZone: http://localhost:8762/eureka/,http://localhost:8763/eureka/

2.1.修改配置文件Server-2

server:
  port: 8762
spring:
  application:
    name: eureka-server
eureka:  # 该项目向那个注册中心注册自己
  client:
    serviceUrl:
     defaultZone: http://localhost:8761/eureka/,http://localhost:8763/eureka/

3.修改配置文件Server-3

server:
  port: 8763
spring:
  application:
    name: eureka-server
eureka:  # 该项目向那个注册中心注册自己
  client:
    serviceUrl:
     defaultZone: http://localhost:8761/eureka/,http://localhost:8762/eureka/

三.修改host文件

修改hosts文件:

在hosts 里面添加

spring cloud 如何部署到多服务器 springcloud 部署几台服务器_Spring Cloud_02


修改配置文件

把本机地址修改为peer1,peer2,peer3

spring cloud 如何部署到多服务器 springcloud 部署几台服务器_Server_03


四.最终配置文件

spring cloud 如何部署到多服务器 springcloud 部署几台服务器_Spring Cloud_04


5.集群搭建完成

spring cloud 如何部署到多服务器 springcloud 部署几台服务器_服务器_05


六.测试

不管使用的是哪个注册中心,它都注册成功了

随便挂掉一台, Eureka server的集群里面,没有主机和从机的概念,节点都是对等的,只有集群里面有一个集群存活,就能保证服务的可用性

spring cloud 如何部署到多服务器 springcloud 部署几台服务器_配置文件_06


只要有一台存活,服务就能注册和调用。