前言:Spring Cloud NetFlix这个项目对NetFlix中一些久经考验靠谱的服务发现,熔断,网关,智能路由,以及负载均衡等做了封装,并通过注解的或简单配置的方式提供给Spring Cloud用户用。本文主要介绍 Spring Cloud中的Eureka组件。由于Spring Cloud做技术选型时中立的,因此Spring Cloud也提供了Spring Cloud Zookeeper,Spring Cloud Consul用于服务治理或服务发现供大家选择使用,另外我还发现Spring Cloud etcd这个项目,也可以用于服务注册和发现

什么是 Spring Cloud Netflix ?

其官方文档中对自己的定义是如下,官网连接,Github地址

This project provides Netflix OSS integrations for Spring Boot apps through autoconfiguration and binding to the Spring Environment and other Spring programming model idioms. With a few simple annotations you can quickly enable and configure the common patterns inside your application and build large distributed systems with battle-tested Netflix components. The patterns provided include Service Discovery (Eureka), Circuit Breaker (Hystrix), Intelligent Routing (Zuul) and Client Side Load Balancing (Ribbon).

Spring Cloud Netflix这个项目对于Spring Boot应用来说,它集成了NetFlix OSS的一些组件,只需通过注解配置和Spring环境的通用简单的使用注解,你可以快速的启用和配置这些久经测试考验的NetFlix的组件于你的应用和用于构建分布式系统中。这些组件包含的功能有服务发现(Eureka),熔断器(Hystrix),智能路由(Zuul)以及客户端的负载均衡器(Ribbon)

简单的来说,Spring Cloud NetFlix这个项目对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. We call this service, the Eureka Server. Eureka also comes with a Java-based client component,the Eureka Client, which makes interactions with the service much easier. The client also has a built-in load balancer that does basic round-robin load balancing.

简单来说Eureka就是Netflix开源的一款提供服务注册和发现的产品,并且提供了相应的Java客户端。

为什么要选择 Eureka?

那么为什么我们在项目中使用了Eureka呢?主要原因如下:

  • 它提供了完整的Service Registry和Service Discovery实现

    • 首先是提供了完整的实现,并且也经受住了Netflix的生产环境考验,使用比较方便只需通过注解或简单配置的方式即可。
  • 和Spring Cloud无缝集成
    • Spring Cloud对Eureka做了无缝集成,提供了一套完善的解决方案,所以使用起来非常方便。
    • 另外,Eureka支持嵌入到应用自身的容器中启动,应用启动完之后,既充当了Eureka的角色,同时也是服务的提供者。这样就极大的提高了服务的可用性。
  • 开源
    • 开源代码,方便学习掌握其源码并驾驭它。

参考阅读:为什么不应该使用ZooKeeper做服务发现
英文链接:
Eureka! Why You Shouldn’t Use ZooKeeper for Service Discovery:
http://www.knewton.com/tech/blog/2014/12/eureka-shouldnt-use-zookeeper-service-discovery/
中文链接:
http://blog.csdn.net/jenny8080/article/details/52448403
Eureka vs. Zookeeper:
https://groups.google.com/forum/#%21topic/eureka_netflix/LXKWoD14RFY

进一步了解 Eureka

Eureka基本架构图

architecture-overview

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

  1. Eureka Server

    • 提供服务注册和发现
  2. Service Provider

    • 服务提供者,服务启动的时候会将自己的服务信息注册到Eureka
  3. Service Consumer

    • 服务消费者,从Eureka中获取已注的服务信息,用于调用服务生产者

需要注意一点是:一个Service Provider既可以是Service Consumer,也可以是Service Provider。

集群模式下的Eureka

architecture-detail

上图更进一步的展示了3个角色之间的交互。

  1. Service Provider会向Eureka Server做Register(服务注册)、Renew(服务续约)、Cancel(服务下线)等操作。
  2. Eureka Server之间会做注册服务的同步,从而保证状态一致
  3. Service Consumer会向Eureka Server获取注册服务列表,并消费服务

Spring Cloud Netflix之Eureka上篇相关推荐

  1. Spring Cloud Netflix Eureka client源码分析

    1.client端 EurekaClient提供三个功能: EurekaClient API contracts are: * - provide the ability to get Instanc ...

  2. 《Spring Cloud Netflix官方文档》2. 服务发现:Eureka服务器

    2. 服务发现:Eureka服务器 2.1 如何创建Eureka服务器 引用org.springframework.cloud的spring-cloud-starter-eureka-server就可 ...

  3. 《Spring Cloud Netflix官方文档》1.服务发现:Eureka客户端

    1.     服务发现:Eureka客户端 服务发现是微服务架构的关键原则之一.使用手动配置或一些约定方式来处理多服务多实例的方式是非常困难,并且十分脆弱的.Eureka同时是Netflix服务发现的 ...

  4. 基于Spring cloud Ribbon和Eureka实现客户端负载均衡

    前言 本案例将基于Spring cloud Ribbon和Eureka实现客户端负载均衡,其中Ribbon用于实现客户端负载均衡,Eureka主要是用于服务注册及发现: 传统的服务端负载均衡 常见的服 ...

  5. Spring Cloud Netflix项目进入维护模式之我见

    这两天看到一则新闻:https://spring.io/blog/2018/12/12/spring-cloud-greenwich-rc1-available-now#spring-cloud-ne ...

  6. SpringCloud学习笔记(1)- Spring Cloud Netflix

    文章目录 SpringCloud学习笔记(1)- Spring Cloud Netflix 单体应用存在的问题 Spring Cloud Eureka Eureka Server代码实现 Eureka ...

  7. 实践出真知之Spring Cloud之基于Eureka、Ribbon、Feign的真实案例

    转载自  实践出真知之Spring Cloud之基于Eureka.Ribbon.Feign的真实案例 Eureka是Spring Cloud Eureka的简称,是Netflix提供的组件之一.通过E ...

  8. Spring Cloud Netflix尤里卡

    本教程是关于Spring云Netflix Eureka的. 在这里,我们将创建eureka发现服务器和微服务,这些服务本身将注册到发现服务器和使用netflix客户端API的客户端中,以使用示例示例来 ...

  9. 【重难点】【分布式 01】RESTful、RPC 对比、Dubbo、Spring Cloud 对比、Eureka、Zookeeper、Consul、Nacos 对比、分布式锁

    [重难点][分布式 01]RESTful.RPC 对比.Dubbo.Spring Cloud 对比.Eureka.Zookeeper.Consul.Nacos 对比.分布式锁 文章目录 [重难点][分 ...

最新文章

  1. 美国商务部工业和安全局(BIS)发布《关于拟制定脑机接口技术出口管制规则的通知》...
  2. Cmake知识----编写CMakeLists.txt文件编译C/C++程序
  3. EXC_BAD_ACCESS调试
  4. 《重构-改善既有代码的设计》学习笔记(一)
  5. js和layerjs配合实现的拖拽表格列
  6. Nodejs 新特性 async await 的使用 以及使用 async await 处理异步
  7. paip. 调试技术打印堆栈 uapi print stack java php python 总结.
  8. spark基础之shuffle机制和原理分析
  9. 一个RecycleView的强大adapter
  10. 进行连续心率监测可以诊断哪些疾病?
  11. 解决红蜘蛛教师端教师图标显示灰色导致无法广播的问题
  12. picasa android 缓存,从android应用上传到picasa
  13. addr2line排查地址
  14. 地图SDK全面升级 – 数十项新功能及优化等你来体验
  15. 随笔杂记(十二)——_pickle.UnpicklingError: unpickling stack underflow
  16. join left loke mysql_mysql监控---慢语句查询
  17. Kubernetes网络插件flannel和calico
  18. asp.net获取URL和IP地址(转)
  19. android http 网关,安卓平台上实现基于HTTP协议数据网关的方法
  20. Excel中VLOOKUP函数的详细用法(灰常有用,求加精!求加精!)

热门文章

  1. 800乘600的分辨率_600元能买到啥配置的手机?
  2. nginx ---- Nginx服务器基础配置实例
  3. vue ---- vue 的入门程序
  4. java正则表达式所有字符串_“JAVA”正则表达式如何匹配所有符合要求的子字符串?...
  5. 解决The valid characters are defined in RFC 7230 and RFC 3986错误问题
  6. scheduled只执行一次,有个定时任务突然不执行了?
  7. ktv点歌系统安卓_喜事汇KTV设备更新语音点歌系统,特推出一下优惠活动。转发朋友圈有惊喜。...
  8. spark笔记之RDD常用的算子操作
  9. Git之同一台电脑如何连接多个远程仓库
  10. python并行任务之生产消费模式