Eureka服务注册中心

简介:

1.适用场景有局限:如果服务提供者的网络地址(ip和端口)发生变化,将会影响服务消费者。
2.无法动态伸缩:每个微服务一般都会部署多个实例,从而实现实现容灾和负载均衡,微服务系统需要具备自动伸缩的能力。
如何解决上述方案:
1)需要一个强大的服务发现机制,服务消费者使用这种机制获取服务提供者的网络信息,及时服务提供者发生变化,服务消费者也无需修改配置文件。
2)服务提供者、消费者、发现组件等三者关系:
clipboard

A.微服务启动件自己的网络地址等信息注册到服务发现组件中,服务发现组件会存储微服务的ip地址、端口等信息。
B.服务消费者可以从服务发现组件查询服务提供者的网络地址,并使用该地址调用服务提供者的接口。
C.各位服务与服务组件使用统一的心跳机制,如果服务发现组件长时间无法与某微服务实例通信,就会被注销。
D.微服务网络地址发生变更时,会重新注册到服务发现组件,避免人工修改提供者的网络地址。

3.服务发现组件核心功能:
1)服务注册表:记录微服务信息的服务的名称、ip、端口等,服务注册表查询API和管理API。
2)服务注册与服务发现:服务注册是微服务启动时,件自己的信息注册到服务发现组件上的过程。服务发现是指查询可用微服务列表及其网络地址的机制。
3)服务检查:服务发现组件使用过一定机制定时检测已注册的服务。

4.Eureka框架结构:
clipboard1

Eureka的框架分为2 个组件:Eureka Server和Eureka Client,具体作用如下:
1)Eureka Server提供服务发现的能力,微服务启动的时候,先Eureka Server注册自己的信息(ip、端口、服务名称),Eureka Server存储这些信息。
2)Eureka Client是一个客户端,用户简化与Server的交互。
3)Eureka Server在90m未收到微服务实例的心跳,Server会销毁该实例。
4)Eureka Client会缓存服务注册表中的信息,有一定的优势:减少查询Server的次数,Server节点都宕机,服务消费依赖缓存信息也可以完成服务的正常调用。

5.Eureka 配置:

6.Eureka Client注册配置:
eureka.instance.prefer-ip-address = true 表示将自己的IP注册到Eureka Server。如果不配置会将操作系统的hostname到Eureka Server.

7.Eureka服务注册中心包含:服务注册、服务发现,服务在集群中允许分片故障期间继续提供服务的发现和注册,当故障非农i安恢复运行时,集群中的其他分片会把他们的状态再次同步回来。不同区域的服务注册中心通过异步模式相互复制各自的状态,每个服务在不同的时间点,服务的状态有细微的差别。

8.Eureka客户端想注册中心注册自身,提供心跳来并周期性更新服务租约,查询服务端状态,并缓存在本地,周期性刷新服务状态。

9.Eureka Server在90s未收到服务实例的心跳,就会销毁该实例。
如果是短时的分区故障,直接销毁实例就有问题,因此Eureka Server采用自我保护模式。

10.Eureka服务治理基础框架3个核心要素:
1)服务注册中心:提供服务注册与发现的功能
2)服务提供者:将自己服务注册到服务注册中心
3)服务消费者:消费者应用从服务注册中心获取服务列表,为消费者提供服务。
架构图如下:
clipboard2

服务注册:Rest方式将数据发送给注册中心,配置:eureka.client.register-with-eureka=true;默认 false
服务续约,服务提供者通过http向注册中心发送心跳,让服务注册中心知道自己还活着。通过配置如下参数设置续约信息:
eureka.instance.lease-renewal-interval-in-seconds=30 续约任务的调用间隔时间,默认30s
eureka.instance.lease-expiration-duration-in--seconds=90 服务失效的时间,默认90s

服务消费:
获取服务:eureka.client.fetch-register=true;注册中心的职责就是维护服务实例,并检索服务。

               eureka.client.register-fetch-interval-seconds = 30;服务缓存清单的更新时间为30s

服务调用:服务消费在获取服务列表后,通过服务名可以获取具体的服务实例名和该实例的元数据信 息。通过这些信息,可以通过Ribbon采用轮询的方式进行调用,实现客户端的负载均衡。Eureka包含Region和Zone,一个Region包含多个Zone,每个服务客户端需要被注册到一个Zone中,每个客户端对应一个Region和一个Zone。

服务注册中心:
1)失效剔除:Eureka Server在启动时,创建一个定时任务,会60s将清单中超过90s没有续约的服务剔除。
2)自我保护:心跳失败比例在15分钟内,低于85%.

相关文章
|
6天前
|
负载均衡 监控 容灾
【SpringCloud】详解Eureka注册中心
【SpringCloud】详解Eureka注册中心
25 0
|
6天前
|
存储 监控 安全
服务注册中心Eureka
服务注册中心Eureka
29 1
|
6天前
|
负载均衡 Java 微服务
1、学习 Eureka 注册中心
1、学习 Eureka 注册中心
37 0
|
7月前
|
存储 Java 网络架构
SpringCloud之Eureka注册中心解读
SpringCloud之Eureka注册中心解读
|
8月前
|
缓存 Java Shell
SpringCloud Eureka注册中心
SpringCloud Eureka注册中心
52 1
|
9月前
|
负载均衡 监控 算法
Eureka注册中心
Eureka注册中心
88 0
|
11月前
|
Java Maven
搭建Eureka注册中心
先创建一个maven项目 导入springboot springcloud和Eureka相关依赖 依赖这里一直有错误,改了半天才可以用 ,用的是阿里云的仓库下载的。
搭建Eureka注册中心集群
第一个Eureka的配置文件
|
12月前
|
负载均衡 监控 算法
Eureka的作用、搭建Eureka注册中心、服务注册及服务发现
Eureka的作用、搭建Eureka注册中心、服务注册及服务发现
104 0
|
12月前
|
JavaScript Java Nacos
Nacos 关于注册中心注册不上的问题
原因是nacos的版本和spring boot的版本不兼容导致的,当时我们用的nacos的版本是0.2.1,spring boot 的版本是2.1.9,2.1.9的spring boot不兼容nacos0.2.1
147 0