这是我参与更文挑战的第15天,活动详情查看: 更文挑战
什么是集群?
集群(cluster)技术是一种较新的技术,通过集群技术,可以在付出较低成本的情况下获得在性能、可靠性、灵活性方面的相对较高的收益,其任务调度则是集群系统中的核心技术。
集群是一组相互独立的、通过高速网络互联的计算机,它们构成了一个组,并以单一系统的模式加以管理。一个客户与集群相互作用时,集群像是一个独立的服务器。集群配置是用于提高可用性和可缩放性。
为什么要用Eureka Server集群:
地位重要
服务注册中心是微服务架构中最基础的设施之一。 注册中心可以说是微服务架构中的“通讯录”,它记录了服务和服务地址的映射关系。作为调度全局的“线人”,一旦出事了,那么所有通过注册中心调度的服务将被切断,当然,如果一个错综复杂的系统,服务间的自个的调用也是存在的,这些调用不会受影响,但是我们使用注册中心的目的就是要把服务间的调用统一管理,微服务规划的越合理,那么这些复杂的内部调用也越少!
压力大
在分布式架构中,服务会注册到这里,当服务需要调用其它服务时,就到这里找到服务的地址,进行调用。

eureka集群流程
说明:
- 服务注册:Register
 - 心跳续约:Renew
 - 服务下线:Cancle
 - 获取服务信息:Get Registry
 - 远程调用:Remote Call
 

Eureka Server的工作原理
- Eureka Server集群之间通过Replicate来同步数据
 - Eureka Server集群之间通过异步方式来同步状态
 - 所有节点都是平等的,不区分主从节点
 - 节点通过彼此相互注册来提高可用性(添加一个或多个有效的serviceUrl指向其他节点)
 
如何搭建集群?
eureka单例
使用上一篇搭建好的eureka单例
新增3个yml文件
在netflix-eureka-server项目中的resources目录下新增3个yml文件,三个文件主要区别就是hostname以及defaultZone的url不同
- 
对应的端口分别是8081、8082、8083
 - 
hostname为:eureka1、eureka2、eureka3
 
spring:
  application:
    name: eureka-server
server:
  port: 8081
eureka:
  instance:
    hostname: eureka1
  client:
    #表示不将将自己注册进EurekaServer,默认为true。
    register-with-eureka: false
    #表示不从EurekaServer抓取已有的注册信息,默认为true。
    fetch-registry: false
    service-url:
      defaultZone: http://eureka2:8082/eureka/,http://eureka3:8083/eureka
复制代码

编辑配置
主要改动两个地方
Name
Name处可以自由命名,此案例为了方便区分,分别命名为EurekaServer-rep1,EurekaServer-rep2,EurekaServer-rep3
Active profiles
Active profiles这里的名字需要跟yml文件名对应,比如yml文件名叫application-rep1,那么这里就叫rep1,等会运行的时候才会调用到application-rep1.yml这个配置文件


运行并访问
3个不同配置运行之后,浏览器访问url:http://localhost:8081/ 、http://localhost:8082/ 、http://localhost:8083/ 能看到浏览器上DS Replicas处由另外两个eureka server,代表集群成功运行了!


今日小结
今天学了eureka集群的作用、调用过程、以及实现方式,好了,下一章再见!























![[桜井宁宁]COS和泉纱雾超可爱写真福利集-一一网](https://www.proyy.com/skycj/data/images/2020-12-13/4d3cf227a85d7e79f5d6b4efb6bde3e8.jpg)

![[桜井宁宁] 爆乳奶牛少女cos写真-一一网](https://www.proyy.com/skycj/data/images/2020-12-13/d40483e126fcf567894e89c65eaca655.jpg)