Eureka:Spring Cloud服务注册和发现组件

问题总结

  1. Eureka 两大组件?
  2. Eureka 服务注册与发现?
  3. Eureka Server 集群?
  4. Eureka 自我保护机制?

问题答案

  1. Eureka 两大组件
  • Eureka Server:Eureka 服务注册中心。当微服务启动时,会将自己的服务注册到Eureka Server。Eureka Server维护了一个可用服务列表,存储了所有注册到Eureka Server的可用服务。
  • Eureka Client:Eureka 客户端,微服务系统中的各个微服务。Eureka Client会向Eureka Server发送心跳(默认30s)。Eureka Server在多个心跳周期没有收到Eureka Client的心跳,将其从服务列表中移除(默认90s)。

  1. Eureka 服务注册与发现

图1:

  • 服务注册中心(Register Service):Eureka Server,提供服务注册和发现功能。
  • 服务提供者(Provider Service):Eureka Client,提供服务。将自己注册到Register Service,以供服务消费者发现。
  • 服务消费者(Consumer Service):Eureka Client,提供消费服务。从Register Service获取服务列表,调用所需服务。

Eureka流程:

  1. 搭建一个Eureka Server作为服务中心;
  2. 服务提供者Eureka Client启动时,将当前服务器的信息以服务名(spring.application.name)的方式注册到服务注册中心;
  3. 服务消费者Eureka Client启动时,向服务注册中心注册;
  4. 服务消费者获取一份可用服务列表,包含了所有注册到服务注册中心的服务信息(包括服务提供者和自身的信息);
  5. 服务消费者通过HTTP或消息中间件远程调用服务提供者提供的服务。

  1. Eureka Server 集群
  • Eureka Server A 和 Eureka Server B,将A作为一个服务注册到B上,B注册一个服务到A上。形成一个相互注册的Eureka Server集群,当服务提供者发送注册请求到Eureka Server时,Eureka Server会将请求转发给集群中与之相连的Eureka Server上,形成Eureka Server之间的服务同步。
  • 服务消费者可以在集群中的任意一台Eureka Server上获取服务提供者的服务。当集群中某个服务注册中心发生故障,服务消费者仍然可以从集群中其他Eureka Server获取服务信息并调用,而不会导致系统的整体瘫痪。(高可用)

  1. Eureka 自我保护机制
  • 在实际的分布式微服务中,健康的服务(Euraka Client)可能因为网络故障而无法与Eureka server正常通讯。若此时Eureka Server因为没有接受心跳而误将健康的服务从服务列表中移除,这显然不合理。
  • Eureka Server在一段时间内没有接收到Eureka Client的心跳,那么Eureka开启自我保护机制,将所有Eureka Cilent的注册信息保护起来。一但网络恢复,这些Eureka Client提供的服务能够继续被服务消费者消费。
    • 弊端:在Eureka自我保护机制触发期间,服务提供者提供的服务出现问题,那么服务消费者就很容易获取到已经不存在的服务从而出现调用失败的情况。(通过Ribbon:负载均衡+Hystrix:流量控制、熔断机制)

Eureka:Spring Cloud服务注册和发现组件的更多相关文章

  1. Spring Cloud ---- 服务注册与发现(Eureka 找到了!找到了! 嘻嘻)

    记录一下吧,为什么接触分布式.因为裸辞之后没有找到工作,好的公司都要求有分布式经验,但是我完全没有.在一次面试的时候,面试官说如果你会分布式架构的话,我可以把工资给你开高2.5,我就考虑着给我点时间, ...

  2. spring cloud服务注册与发现无法发现的可能原因

    1.注册中心服务端默认90秒检测一次,看服务是否还存活,不存活则删除掉服务,还存活则继续注册上去 2. spring: profiles: dev cloud: config: name: clean ...

  3. 一起来学Spring Cloud | 第二章:服务注册和发现组件 (Eureka)

    本篇文章,很浅显的一步步讲解如何搭建一个能运行的springcloud项目(带所有操作截图).相信!看完本篇之后,你会觉得springcloud搭建如此简单~~~~ 一. Eureka简介: 1.1  ...

  4. spring cloud 服务注册中心eureka高可用集群搭建

    spring cloud 服务注册中心eureka高可用集群搭建 一,准备工作 eureka可以类比zookeeper,本文用三台机器搭建集群,也就是说要启动三个eureka注册中心 1 本文三台eu ...

  5. spring Cloud服务注册中心Eureka集群

    spring Cloud服务注册中心Eureka集群配置: 在application.yml文件加以下配置: server: port: 8761 tomcat: uri-encoding: UTF- ...

  6. Spring Cloud服务注册中心交付至kubernetes

    前言 服务发现原则: 各个微服务在启动时,会将自己的网络地址等信息注册到服务发现组件中,服务发现组件会存储这些信息 服务消费者可以从服务发现组件中查询到服务提供者的网络地址,并使用该地址来远程调用服务 ...

  7. .net core + eureka + spring boot 服务注册与调用

    .net core + eureka + spring boot 服务注册与简单的调用 假期小长假遇上疫情只能去家里蹲了,刚好有时间总结一下. 概述 微服务架构是当前比较火的分布式架构,本篇基于.ne ...

  8. spring boot 2.0.3+spring cloud (Finchley)1、搭建服务注册和发现组件Eureka 以及构建高可用Eureka Server集群

    一 .搭建Eureka 编写Eureka Server 由于有多个spring boot项目,采用maven多module的结构,项目结构如下: 新建一个maven主工程,在主maven的pom文件中 ...

  9. 孰能巧用 Spring Cloud 服务注册中心Eureka

    Eureka介绍 在Spring Cloud Netflix 整合技术栈中,Eureka既可以作为服务注册中心也可以用于服务发现对整个微服务架构起着最核心的整合作用. Eureka是基于REST(Re ...

  10. 微服务~Eureka实现的服务注册与发现及服务之间的调用

    微服务里一个重要的概念就是服务注册与发现技术,当你有一个新的服务运行后,我们的服务中心可以感知你,然后把加添加到服务列表里,然后当你死掉后,会从服务中心把你移除,而你作为一个服务,对其它服务公开的只是 ...

随机推荐

  1. 一文给你讲清楚BeanFactory 和 FactoryBean 的关联与区别

    本文分享自华为云社区 <BeanFactory 和 FactoryBean 的关联与区别>,作者:战斧. 一.概括性的回答 两者其实都是Spring提供的接口,如下 public inte ...

  2. 使用 Sealos 构建低成本、高效能的私有云

    这个时候谈论私有云似乎有点反直觉?大部分人认知不是上云是大趋势嘛?我也比较认可上云,不过私有云也是云,今天给大家带来一个新的选择 -- 用云,只需一个 Sealos 就够了. 看看我们怎么做到更低的成 ...

  3. 10.4 认识Capstone反汇编引擎

    Capstone 是一款开源的反汇编框架,目前该引擎支持的CPU架构包括x86.x64.ARM.MIPS.POWERPC.SPARC等,Capstone 的特点是快速.轻量级.易于使用,它可以良好地处 ...

  4. FragmentStatePagerAdapter

    public abstract class FragmentStatePagerAdapter extends PagerAdapter java.lang.Object    ↳ android.s ...

  5. BizSpring在线商城常见问题

    一.什么是BizSpring在线商城? BizSpring在线商城是一个用java语言开发的完全开源的网络商城平台.该项目已经经历多次迭代升级是一个的成熟的在线商城解决方案,它具有轻量级,易于维护,操 ...

  6. 关于长链剖分的数组实现 | CF1009F Dominant Indices

    请容许我不理解一下为什么这题题解几乎全都是指针实现/kk 其实长链剖分是可以直接用数组来写的. 考虑朴素 DP.设 \(f_{u,i}\) 表示以点 \(u\) 为根的子树中与点 \(u\) 距离为 ...

  7. 一步步带你剖析Java中的Reader类

    本文分享自华为云社区<深入理解Java中的Reader类:一步步剖析>,作者:bug菌. 前言 在Java开发过程中,我们经常需要读取文件中的数据,而数据的读取需要一个合适的类进行处理.J ...

  8. C#工作流——elsa-workflows

    介绍 Elsa Workflows 是一个功能强大且灵活的执行引擎,封装为一组开源 .NET 库,旨在为 .NET 应用程序注入工作流功能. 借助 Elsa,开发人员可以将逻辑直接编织到他们的系统中, ...

  9. C++11 列表初始化都做了什么?

    类的成员变量的初始化细节 首先,来看两个问题: 类的构造函数中,成员变量的列表初始化是如何实现的? 为什么列表初始化效率上优于在构造函数中为成员变量赋值? (后文中,将 "在构造函数中为成员 ...

  10. 数据库系列:InnoDB下实现高并发控制

    数据库系列:MySQL慢查询分析和性能优化 数据库系列:MySQL索引优化总结(综合版) 数据库系列:高并发下的数据字段变更 数据库系列:覆盖索引和规避回表 数据库系列:数据库高可用及无损扩容 数据库 ...