手记

SpringCloud微服务笔记-服务发现组件Eureka

微服务架构中的注册中心

微服务架构对服务注册中心的要求

在微服务架构中,由于每一个服务的粒度相对传统SOA来说要小的多,所以服务的数量会成倍增加。这时如果有效管理服务的注册信息就尤为重要。我们对服务注册中心的期望主要有以下几条:

  • 简单易用:最好对开发者透明
  • 高可用:几台注册中心坏掉不会导致整个服务瘫痪,注册服务整体持续可用
  • 避免跨越机房调用:最好调用优先同一个机房的服务以减少网络延迟
  • 跨语言:允许开发者使用多种编程语言构建微服务

服务提供者、消费者、发现组件等三者关系

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

服务发现组件核心功能:

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

Eureka简介

Eureka 是 Netflix 出品的用于实现服务注册和发现的工具。 Spring Cloud 集成了 Eureka,并提供了开箱即用的支持。其中, Eureka 又可细分为 Eureka Server 和 Eureka Client。

Eureka框架结构

Eureka的框架分为2 个组件:Eureka Server和Eureka Client,具体作用如下:

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

Eureka服务治理基础框架3个核心要素

  • 服务注册中心:提供服务注册与发现的功能
  • 服务提供者:将自己服务注册到服务注册中心
  • 服务消费者:消费者应用从服务注册中心获取服务列表,为消费者提供服务。
    架构图如下:

服务提供者(服务注册)

Rest方式将数据发送给注册中心,配置:
指示此实例是否应将其信息注册到eureka服务器以供其他人发现。在某些情况下,您不希望发现实例,而您只想发现其他实例。默认值:true

eureka.client.register-with-eureka=true

服务续约,服务提供者通过http向注册中心发送心跳,让服务注册中心知道自己还活着。通过配置如下参数设置续约信息:

#续约任务的调用间隔时间,默认30s
eureka.instance.lease-renewal-interval-in-seconds=30
#服务失效的时间,默认90s
eureka.instance.lease-expiration-duration-in--seconds=90

服务消费者(服务消费):

获取服务:eureka.client.fetch-register=true;注册中心的职责就是维护服务实例,并检索服务。
指示该客户端是否应从eureka服务器获取eureka注册表信息。默认值为true 一般为服务消费者配置
eureka.client.fetch-registry=true

#指示从eureka服务器获取注册表信息的频率(以秒为单位)默认值:30
eureka.client.register-fetch-interval-seconds = 30;

服务调用:

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

服务注册中心:

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

参考

0人推荐
随时随地看视频
慕课网APP