SpringCloud的版本名、注册中心Eureka

 SpringCloud的版本名

  官网中会看到如下的版本名:Dalston、Edgware、Finchley、Greenwich、Hoxton.

开发代号看似没有什么规律,但实际上首字母是有顺序的,比如:Dalston版本,我们可以简称 D 版本,

对应的 Edgware 版本我们可以简称 E 版本。

而版本号后面的 .SR 指的是:service releases,简称 SRX(X 是一个递增数字)

Spring Cloud与Spring Boot版本匹配关系:

 开发过程中,我们需要更详细的版本对应,如下:

关于maven仓库的版本列表

spring-cloud-dependencies 版本列表可查看:

  https://mvnrepository.com/artifact/org.springframework.cloud/spring-cloud-dependencies

spring-boot-starter-parent 版本列表可查看:

  https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-parent

比如:springBoot是2.1版本, SpringCloud使用G版本

SpringCloud之注册中心Eureka

  Eureka 是 Netflix 开发的,一个基于 REST 服务的,服务注册(Service Registry)与发现(Service Discovery)的组件

它主要包括两个组件:Eureka Server 和 Eureka Client

  •  Eureka Client:一个Java客户端,用于简化与 Eureka Server 的交互(通常就是微服务中的客户端和服务端)
  •  Eureka Server:提供服务注册和发现的能力(通常就是微服务中的注册中心)

  各个微服务启动时,会通过 Eureka Client 向 Eureka Server 注册自己,Eureka Server 会存储该服务的信息,也就是说,

每个微服务的客户端和服务端,都会注册到 Eureka Server,这就衍生出了微服务相互识别的话题:

  • 同步:每个 Eureka Server 同时也是 Eureka Client(逻辑上的),多个 Eureka Server 之间通过复制的方式完成服务注册表的同步,形成 Eureka 的高可用
  • 识别:Eureka Client 会缓存 Eureka Server 中的信息,即使所有 Eureka Server 节点都宕掉,服务消费者仍可使用缓存中的信息找到服务提供者
  • 续约:微服务会周期性(默认30s)地向 Eureka Server 发送心跳以Renew(续约)自己的信息(类似于heartbeat)
  • 续期:Eureka Server 会定期(默认60s)执行一次失效服务检测功能,它会检查超过一定时间(默认90s)没有Renew的微服务,发现则会注销该微服务节点
Register(服务注册):把自己的IP和端口注册给Eureka。
Renew(服务续约):发送心跳包,每30秒发送一次。告诉Eureka自己还活着。
Cancel(服务下线):当provider关闭时会向Eureka发送消息,把自己从服务列表中删除。防止consumer调用到不存在的服务。
Get Registry(获取服务注册列表):获取其他服务列表。
Replicate(集群中数据同步):eureka集群中的数据复制与同步。
Make Remote Call(远程调用):完成服务的远程调用。

为什么 要用注册中心?

1、微服务数量众多,要进行远程调用就需要知道服务端的ip地址和端口,注册中心帮助我们管理这些服务的ip和端口。

2、微服务会实时上报自己的状态,注册中心统一管理这些微服务的状态,将存在问题的服务踢出服务列表,客户端获取到可用的服务进行调用。

Eureka解决了第一个问题(==作用==):服务的管理,注册和发现、状态监管、动态路由。

Eureka负责管理记录服务提供者的信息。服务调用者无需自己寻找服务,Eureka自动匹配服务给调用者。

Eureka与服务之间通过心跳机制进行监控;

上图简要描述了Eureka的基本架构,由3个角色组成:

  • 1、Eureka Server: 提供服务注册和发现
  • 2、Service Provider: 服务提供方将自身服务注册到Eureka,从而使服务消费方能够找到
  • 3、Service Consumer:服务消费方从Eureka获取注册服务列表,从而能够消费服务
原文地址:https://www.cnblogs.com/64Byte/p/13276040.html