`
田田万558
  • 浏览: 14393 次
社区版块
存档分类
最新评论

spring cloud分布式微服务注册中心Eureka

 
阅读更多

Eureka是Netflix开源的一款提供服务注册和发现的产品,它提供了完整的Service Registry和Service Discovery实现。也是springcloud体系中最重要最核心的组件之一。

注册中心的意义

注册中心

管理各种服务功能包括服务的注册、发现、熔断、负载、降级等,比如dubbo admin后台的各种功能。

有了注册中心,调用关系的变化,画几个简图来看一下。

服务A调用服务B

 

SpringCloud系列教程 | 第二篇:注册中心Eureka
 

 

有了注册中心之后,任何一个服务都不在是直连的,都需要通过注册中心去调用。

 

SpringCloud系列教程 | 第二篇:注册中心Eureka
 

 

如果是一个连续调用:

服务A调用服务B,服务B调用服务C

 

SpringCloud系列教程 | 第二篇:注册中心Eureka
 

 

这里如果加上注册中心,整个调用流程就会分为两步,服务A先从注册中心请求服务B,服务B再从注册中心请求服务C

 

SpringCloud系列教程 | 第二篇:注册中心Eureka
 

 

上面的示例只是描述了两三个服务之间的互相调用,可能加上注册中心还会稍显繁琐,如果一条调用链上面有几十个服务(这个丝毫不是开玩笑哦,正常的业务流程中很可能出现这种复杂的调用过程),在工作中我就遇到过超过20个服务的互相调用,这种复杂业务场景的互相调用,如果不使用注册中心,画出来的图会连成一个网状结构,单从图上面已经很难找出服务的上下游关系了。其中如果一个服务有改动,就会牵扯到上下游多台机器的重启,整个架构设计完全耦合在一起,每次改动所需要的工作量完全超出想象。通过注册中心去注册服务,完全不在需要关心上下游机器的ip地址,由几台服务器组成,是否重启才会生效,注册中心已经帮我们把服务的注册和发现做好了,我们只需要知道注册中心在哪里,对应的服务名是什么就ok啦~~

由于各种服务都注册到了服务中心,就有了去做很多高级功能条件。比如几台服务提供相同服务来做均衡负载;监控服务器调用成功率来做熔断,移除服务列表中的故障点;监控服务调用时间来对不同的服务器设置不同的权重等等。

Netflix的前世今生

在说Eureka之前我们先了解一下Netflix这家公司:

以下介绍来自于百度百科:

Netflix(Nasdaq NFLX) 成立于1997年,是一家在线影片租赁提供商,主要提供Netflix超大数量的DVD并免费递送,总部位于美国加利福尼亚州洛斯盖图。

Netflix已经连续五次被评为顾客最满意的网站。可以通过PC、TV及iPad、iPhone收看电影、电视节目,可通过Wii,Xbox360,PS3等设备连接TV。Netflix大奖赛从2006年10月份开始,Netflix公开了大约1亿个1-5的匿名影片评级,数据集仅包含了影片名称。评价星级和评级日期,没有任何文本评价的内容。比赛要求参赛者预测Netflix的客户分别喜欢什么影片,要把预测的效率提高10%以上。

总而言之,这是一家全球最大的(可能要排除国内的,具体不清楚)流媒体公司,最开始见这个单子是在各种美剧或者电影的开头,顺手百度了一下,Netflix拍摄的代表性的美剧有《纸牌屋》、《毒枭》、《怪奇物语》。springcloud的微服务就是基于Netflix这家公司的开源产品来做的。

Netflix的开源框架组件已经在Netflix的大规模分布式微服务环境中经过多年的生产实战验证,正逐步被社区接受为构造微服务框架的标准组件。Spring Cloud开源产品,主要是基于对Netflix开源组件的进一步封装,方便Spring开发人员构建微服务基础框架。对于一些打算构建微服务框架体系的公司来说,充分利用或参考借鉴Netflix的开源微服务组件(或Spring Cloud),在此基础上进行必要的企业定制,无疑是通向微服务架构的捷径。

Eureka

按照官方介绍:

Eureka is a REST (Representational State Transfer) based service that is primarily used in the AWS cloud for locating services for the purpose of load balancing and failover of middle-tier servers.

Eureka 是一个基于 REST 的服务,主要在 AWS 云中使用, 定位服务来进行中间层服务器的负载均衡和故障转移。

Spring Cloud 封装了 Netflix 公司开发的 Eureka 模块来实现服务注册和发现。Eureka 采用了 C-S 的设计架构。Eureka Server 作为服务注册功能的服务器,它是服务注册中心。而系统中的其他微服务,使用 Eureka 的客户端连接到 Eureka Server,并维持心跳连接。这样系统的维护人员就可以通过 Eureka Server 来监控系统中各个微服务是否正常运行。Spring Cloud 的一些其他模块(比如Zuul)就可以通过 Eureka Server 来发现系统中的其他微服务,并执行相关的逻辑。

Eureka由两个组件组成:Eureka服务器和Eureka客户端。Eureka服务器用作服务注册服务器。Eureka客户端是一个java客户端,用来简化与服务器的交互、作为轮询负载均衡器,并提供服务的故障切换支持。Netflix在其生产环境中使用的是另外的客户端,它提供基于流量、资源利用率以及出错状态的加权负载均衡。

用官方的一张图来认识一下:

 

SpringCloud系列教程 | 第二篇:注册中心Eureka
 

 

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

1、Eureka Server

  • 提供服务注册和发现
    2、Service Provider
  • 服务提供方
  • 将自身服务注册到Eureka,从而使服务消费方能够找到
    3、Service Consumer
  • 服务消费方
  • 从Eureka获取注册服务列表,从而能够消费服务、
  • (企业架构源码可以加求球:三五三六二四七二五九)
分享到:
评论

相关推荐

    简易的SpringCloud分布式微服务项目

    本项目名为"简易的SpringCloud分布式微服务项目",它旨在提供一个简单易懂的入门示例,帮助开发者理解如何利用SpringCloud实现微服务的搭建和管理。 1. **微服务概念**:微服务是一种软件开发方法,它提倡将单一...

    基于SpringCloud分布式微服务+微信小程序实现短视频社交app设计源码.zip

    《基于SpringCloud分布式微服务+微信小程序实现短视频社交App设计源码详解》 在现代互联网技术的推动下,短视频社交应用已经成为人们日常生活中不可或缺的一部分。本文将深入探讨如何利用SpringCloud分布式微服务...

    springcloud 分布式框架搭建

    Eureka 是 SpringCloud 的服务注册与发现组件,它允许微服务之间互相发现和通信。服务提供者在启动时会向 Eureka 注册自身信息,而服务消费者则通过 Eureka 获取服务提供者的地址,实现服务之间的调用。 2. **Zuul...

    SpringCloud分布式开发基础工程

    本项目“SpringCloud分布式开发基础工程”旨在帮助开发者理解并掌握SpringCloud的核心组件及其使用方式。 首先,服务注册中心是SpringCloud生态中的关键组件,一般采用Eureka。Eureka提供了服务注册和服务发现的...

    springcloud-eureka分布式微服务框架后端项目demo、提供端集群、消费端、eureka注册中心集群

    本项目包含了一个完整的SpringCloud Eureka分布式微服务框架的示例,涵盖了后端服务、提供端集群、消费端以及Eureka注册中心集群。 首先,让我们详细了解一下Eureka。Eureka是Netflix开源的一个基于REST的服务发现...

    使用spring cloud代建完整的分布式微服务架构

    使用spring cloud代建完整的分布式微服务架构,包括spring security oauth2权限控制,docker,config动态修改配置文件,eureka服务发现,zuul路由,实现服务和服务之间的调用。等等

    springcloud分布式服务治理

    Spring Cloud Alibaba 是一套针对中国开发者设计的微服务解决方案,它整合了阿里巴巴的开源项目和云产品,如 Nacos(服务注册与发现)、Sentinel(流量控制、熔断、降级)、Seata(分布式事务)等。这些组件旨在提供...

    基于SpringCloud分布式微服务+微信小程序实现短视频社交app毕业源码案例设计.zip

    SpringCloud的核心组件包括Eureka(服务注册与发现)、Zuul(API网关)和Hystrix(断路器),它们共同构建了微服务架构的基础。 其次,微信小程序是腾讯推出的轻量级应用开发平台,它允许开发者在微信内快速构建...

    通过spring cloud代建完整的分布式微服务架构

    使用spring cloud代建完整的分布式微服务架构,包括spring security oauth2权限控制,docker,config动态修改配置文件,eureka服务发现,zuul路由,实现服务和服务之间的调用

    spring boot+Spring cloud微服务分布式源码.zip

    1. **服务发现**:使用 Eureka,每个服务实例都会向注册中心注册,其他服务可以通过注册中心找到所需的服务实例。 2. **负载均衡**:Ribbon 提供客户端的负载均衡能力,可以在请求服务时自动选择一个合适的服务器。...

    spring cloud demo

    Eureka是Spring Cloud的服务注册与发现组件,它允许各个服务实例向中心注册自己的元数据信息,同时提供服务发现的功能,使消费者能够找到需要的服务。 四、注册中心(Service Registry) Eureka作为注册中心,是...

    springcloud 微服务架构

    Eureka是SpringCloud中的服务治理组件,它主要负责服务的注册与发现。每个微服务启动时,会向Eureka服务器注册自身的信息,包括服务名、地址、端口等。当其他服务需要调用这些服务时,只需通过服务名查找Eureka,...

    基于SpringCloud开发的在线教育系统

    微服务治理:Eureka、Zuul、Hystrix、Spring Cloud Config等 1、站点管理 2 媒资管理微服务 媒资查询:教学机构查询自己所拥有的媒体文件。 视频上传:将用户线下录制的教学视频上传到媒资系统。 视频处理:视频上传...

    Ideal版SpringCloud框架参考---分布式微服务架构参考

    本文将深入探讨标题" Ideal版SpringCloud框架参考---分布式微服务架构参考"所涵盖的关键知识点,并结合描述中的组件进行详细解析。 首先,Eureka是Spring Cloud中的服务注册与发现组件。它允许微服务实例向中心...

    springcloud-eureka.zip

    7. **配置与使用**:在Spring Cloud项目中,可以通过配置文件(如`application.yml`或`application.properties`)来设置Eureka Server和Eureka Client的相关参数,比如服务注册的超时时间、心跳间隔、服务发现的重试...

    springcloud分布式实战

    **Spring Eureka** 是Spring Cloud中的服务注册与发现组件。它允许服务提供者向Eureka服务器注册自己的服务,并且服务消费者可以从Eureka服务器获取服务提供者的地址列表。Eureka通过心跳机制监控服务的健康状态,...

    2020年SpringCloud分布式面试题整理.pdf

    2. **服务发现**:Eureka 或 Zookeeper 可作为服务注册中心,使得服务实例能够互相找到。 3. **服务注册**:服务提供者向注册中心注册自身的信息,服务消费者可以从注册中心获取服务提供者的地址。 4. **断路器**:...

    springCloud项目-内含eureka注册中心和一个服务

    Spring Cloud是基于Spring Boot实现的云应用开发工具集,它为开发者提供了在分布式系统(如配置管理、服务发现、断路器、智能路由、微代理、控制总线、一次性令牌、全局锁、领导选举、分布式会话、集群状态)中快速...

    spring-cloud 微服务系统架构 ppt

    Spring Cloud提供了Eureka组件,它是一个基于REST的服务注册与发现工具,允许服务实例向注册中心注册自己的元数据,并让其他服务查询这些信息来找到并调用它们。 2. **负载均衡**:为了分散请求压力,Spring Cloud...

Global site tag (gtag.js) - Google Analytics