Spring Cloud高可用集群搭建

Dear 丶 2023-05-29 05:04 77阅读 0赞

一.集群搭建思路
每个区域一个Eureka集群区域,负责该区域内的服务实例。每个区域至少有一台Eureka服务器来处理区域故障
在这里插入图片描述
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

  1. server:
  2. port: 8761
  3. spring:
  4. application:
  5. name: eureka-server
  6. eureka: # 该项目向那个注册中心注册自己
  7. client:
  8. serviceUrl:
  9. defaultZone: http://localhost:8762/eureka/,http://localhost:8763/eureka/

2.1.修改配置文件Server-2

  1. server:
  2. port: 8762
  3. spring:
  4. application:
  5. name: eureka-server
  6. eureka: # 该项目向那个注册中心注册自己
  7. client:
  8. serviceUrl:
  9. defaultZone: http://localhost:8761/eureka/,http://localhost:8763/eureka/

3.修改配置文件Server-3

  1. server:
  2. port: 8763
  3. spring:
  4. application:
  5. name: eureka-server
  6. eureka: # 该项目向那个注册中心注册自己
  7. client:
  8. serviceUrl:
  9. defaultZone: http://localhost:8761/eureka/,http://localhost:8762/eureka/

三.修改host文件
修改hosts文件:
在hosts 里面添加在这里插入图片描述
修改配置文件
把本机地址修改为peer1,peer2,peer3
在这里插入图片描述
四.最终配置文件
在这里插入图片描述
5.集群搭建完成
在这里插入图片描述
六.测试

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

随便挂掉一台, Eureka server的集群里面,没有主机和从机的概念,节点都是对等的,只有集群里面有一个集群存活,就能保证服务的可用性
在这里插入图片描述
只要有一台存活,服务就能注册和调用。

发表评论

表情:
评论列表 (有 0 条评论,77人围观)

还没有评论,来说两句吧...

相关阅读

    相关 nginx可用

    一、背景 我们都知道nginx有负载均衡的功能,我们在学习的时候,练手的话,一般请求交给一个nginx,然后使用nginx自带的upstream指令把请求转发到其他web