SpringCloud--Netflix Eureka 简介
一、Eureka简介
Eureka是Netflix开发的服务发现框架,本身是一个基于REST的服务,主要用于定位运行在AWS域中的中间层服务,以达到负载均衡和中间层服务故障转移的目的.SpringCloud将它集成在其子项目spring-cloud-netflix中,以实现SpringCloud的服务发现功能。
1 Eureka组件
Eureka包含两个组件:Eureka Server和Eureka Client。
1.1 Eureka Server
Eureka Server提供服务注册服务,各个节点启动后,会在Eureka Server中进行注册,这样EurekaServer中的服务注册表中将会存储所有可用服务节点的信息,服务节点的信息可以在界面中直观的看到。
Eureka Server本身也是一个服务,默认情况下会自动注册到Eureka注册中心。如果搭建单机版的Eureka Server注册中心,则需要配置取消Eureka Server的自动注册逻辑。毕竟当前服务注册到当前服务代表的注册中心中是一个说不通的逻辑。
Eureka Server通过Register、Get、Renew等接口提供服务的注册、发现和心跳检测等服务。
1.2 Eureka Client
Eureka Client是一个java客户端,用于简化与Eureka Server的交互,客户端同时也具备一个内置的、使用轮询(round-robin)负载算法的负载均衡器。在应用启动后,将会向Eureka Server发送心跳,默认周期为30秒,如果Eureka Server在多个心跳周期内没有接收到某个节点的心跳,Eureka Server将会从服务注册表中把这个服务节点移除(默认90秒)。
Eureka Client分为两个角色,分别是:
- Application Service(Service Provider)
- Application Client(Service Consumer)
1.2.1 Application Service
服务提供方,是注册到Eureka Server中的服务。
1.2.2 Application Client
服务消费方,通过Eureka Server发现服务,并消费。
注意:在这里,Application Service和Application Client不是绝对上的定义,因为Provider在提供服务的同时,也可以消费其他Provider提供的服务;Consumer在消费服务的同时,也可以提供对外服务。
二、Eureka和Zookeeper对比
1 什么是CAP定理
CAP原则又称CAP定理,指的是在一个分布式系统中,Consistency(数据一致性)、Availability(服务可用性)、Partition tolerance(分区容错性),三者不可兼得。CAP由Eric Brewer在2000年PODC会议上提出。该猜想在提出两年后被证明成立,成为我们熟知的CAP定理分布式系统CAP定理
分布式系统 CAP 定理
C数据一致性(Consistency) |
也叫做数据原子性 系统在执行某项操作后仍然处于一致的状态。在分布式系统中,更新操作执行成功后所有的用户都应该读到最新的值, 这样的系统被认为是具有强一致性的。等同于所有节点访问同一份最新的数据副本。 优点: 数据一致,没有数据错误可能 缺点: 相对效率降低。 |
---|---|
A服务可用性(Availablity) | 每一个操作总是能够在一定的时间内返回结果,这里需 要注意的是"一定时间内"和"返回结果"。一定时间内指的是, 在可以容忍的范围内返回结果,结果可以是成功或者是失败 |
P分区容错性(Partitiontorlerance) | 在网络分区的情况下,被分隔的节点仍能正常对外提供服务(分布式集群,数据被分布存储在不同的服务器上,无论 什么情况,服务器都能正常被访问) |
- 定律:任何分布式系统只可同时满足二点,没法三者兼顾。
CA放弃 P | 如果想避免分区容错性问题的发生.一种做法是将所有的数据(与事务相关的)/服务都放在一台机器上。虽然无法100%保证系统不会出错,但不会碰到由分区带来的负面效果。当然这个选择会严重的影响系统的扩展性。 |
---|---|
CP放弃 A | 相对于放弃"分区容错性"来说,其反面就是放弃可用性。一旦遇到分区容错故障,那么受到影响的服务需要等待一定时间,因此在等待时间内系统无法对外提供服务。 |
AP放弃 C | 这里所说的放弃一致性,并不是完全放弃数据一致性, 而是放弃数据的强一致性,而保留数据的最终一致性。以网络购物为例,对只剩下一件库存的商品,如果同时接受了两个订单,那么较晚的订单将被告知商品告罄。 |
对比项 | Zookeeper | Eureka | 描述 |
---|---|---|---|
CAP | CP | AP |
ZooKeeper 分布集群是使用主从模型实现的。在一个时间点上, 只有一个 leader 真正的对外提供服务。其他的follower 都会实时备份leader 中 的 数 据 , 当leader 宕机,则 follower 选举出新的 leader 对外提供服务。 Eureka 分布集群是平等模型(无主模型) 所有的节点都是平等的,客户端访问任意节点都可以提供实时的服务响应。如果某节点发送宕机等故障,接收到的请求会转交给其他的节点。无主模型,每个节点的数据可能不实时 |
Dubbo 集成 | 已支持 | Dubbo 开发的时候不需要考虑注册中心选择。 Spring Cloud 中推荐使用Eureka 作为注册中心,Eureka 是由Spring Cloud 子 项 目spring-cloud-netflix 集成的。是Spring Cloud 中的一个组件会有针对性的服务提供和发现组件。 | |
Spring Cloud 集成 | 已支持 | 已支持 | Dubbo 开发的时候不需要考虑注册中心选择。 Spring Cloud 中推荐使用Eureka 作为注册中心,Eureka 是由Spring Cloud 子 项 目spring-cloud-netflix 集成的。是Spring Cloud 中的一个组件会有针对性的服务提供和发现组件。 |
Dubbo 集成 | 已支持 | Dubbo 开发的时候不需要考虑注册中心选择。 Spring Cloud 中推荐使用Eureka 作为注册中心,Eureka 是由Spring Cloud 子 项 目spring-cloud-netflix 集成的。是Spring Cloud 中的一个组件会有针对性的服务提供和发现组件。 | |
kv 服务 | 已支持 | Dubbo 开发的时候不需要考虑注册中心选择。 Spring Cloud 中推荐使用Eureka 作为注册中心,Eureka 是由Spring Cloud 子 项 目spring-cloud-netflix 集成的。是Spring Cloud 中的一个组件会有针对性的服务提供和发现组件。 | |
Dubbo 集成 | 已支持 | ZK 支持数据存储eureka 不支持 | |
使用接口(多语言能力) | 提供客户端 | 已支持 | ZK 的跨语言支持比较弱 |
watch 支持 | 已支持 | 已支持 | 什 么 是 Watch 支持?就是客户端监听服务端的变化情况。zk 通过订阅监听来实现eureka 通过轮询的方式来实现 |
集群监控 | metrics | metrics,运维者可以收集并报警这些度量信息达到监控目的 |
SpringCloud--Netflix Eureka 简介相关推荐
- Netflix Eureka 简介、架构原理、及服务发现
目录 Netflix Eureka 简介 spring-cloud-netflix 简介 Eureka 原理 服务发现 客户端发现模式 服务端发现模式 服务注册表 自注册方式 第三方注册模式 总结 N ...
- SpringCloud Netflix Eureka
文章目录 一. Eureka简介 Eureka组件 二. Eureka和Zookeeper 对比 1 什么是CAP定理 2 基于CAP定理比对Eureka和Zookeeper 三. 搭建Eureka注 ...
- SpringBoot 2 使用 SpringCloud Netflix Eureka 实现服务注册与发现
开篇词 该指南将引导你启动和使用 Netflix Euraka 服务注册表. 你将创建的应用 我们将搭建 Netflix Eureka 服务注册表,然后构建一个客户端,该客户端将同时在注册表中注册并使 ...
- SpringCloud Netflix Ribbon
文章目录 一. Ribbon简介 二. 使用Ribbon开发微服务 1 创建springcloud工程 和 commons子模块 2 开发服务提供者 - ribbonappservice 3 开发服务 ...
- 【真会玩】- SpringCloud Netflix 实战笔记 -【Eureka】
文章目录 友情提醒 前置环境搭建 Eureka 概念初识 服务注册 服务发现 续租 拉取注册表 Cancel 同步时间延时 通讯机制 Eureka服务端搭建 Eureka客户端 Provider搭建 ...
- SpringCloud的五大组件之一:Netflix Eureka
组件一:Netflix Eureka--服务注册与发现 1. 什么是Eureka? Eureka是Netflix开发的服务发现框架,本身是一个基于REST的服务,主要用于定位运行在AWS域中的中间层服 ...
- SpringCloud之Eureka实战和架构设计解析
SpringCloud之Eureka实战和架构设计解析 Netflix Eureka(后文简称Eureka)是由Netflix开源的一款基于REST的服务发现组件,包括Eureka Server及Eu ...
- SpringCloud微服务简介(一)
SpringCloud微服务简介(一) Spring Cloud简单认识 微服务英文名称Microservice,Microservice架构模式就是将整个Web应用组织为一系列小的Web服务.这些小 ...
- 浅谈SpringCloud (二) Eureka服务发现组件
上面学习到了如何由一个程序访问另一个程序,那么如果使用SpringCloud来进行访问,该如何访问呐? 可以借助Eureka服务发现组件进行访问. 可以借助官方文档:https://spring.io ...
- 从零开始搭建spring-cloud(1) ----eureka
撸了今年阿里.头条和美团的面试,我有一个重要发现.......>>> 什么是Eureka,什么是服务注册与发现? Spring Boot作为目前最火爆的web框架.那么spring ...
最新文章
- Castle IOC容器实践之EnterpriseLibrary Configuration Facility
- 2012-11-25学习笔记
- 部署 dashboard 插件
- Netflix OSS、Spring Cloud还是Kubernetes? 都要吧!
- Java Proxy 动态代理原理剖析
- 20145127 《Java程序设计》第四次实验报告
- 迅为恩智浦iTOP-IMX6开发平台
- 3亿流量还能让Keep错几次?
- MATLAB调用M文件
- xp系统计算机配置在哪里设置,XP系统电脑进行声卡设置的方法介绍
- python定时开关机的代码_python实现Windows电脑定时关机
- 心血来潮用vb写-音标发音小程序
- python爬虫学习之路(二)re库的使用方法
- RT-Thread内核-__rt_ffs函数
- LaTeX--6--字体与字号
- 多元线性回归的缺陷_多元线性回归常见问题
- Java基础——正则表达式_校验QQ号码、手机号是否满足规则、邮箱格式验证
- 计算化学软件 Schrodinger | 资源收集
- 【中学】找出最大素数
- 金蝶K3服务器一键配置精灵
热门文章
- 计算机基本技能实训总结,计算机基本技能实训总结报告[2014]
- (CSS)3.三种基本选择器(标签,类,id)
- STC4054锂电池充电IC
- 所有网站都是用虚拟服务器吗,哪类网站不适合使用虚拟主机?
- ArcMap(ArcGIS)批量裁剪图片【超详细】
- 怎么修改MAC电脑名字,三步教你修改MAC电脑的名字
- 软件测试处理事物一般步骤,软件设计师考试题型分析及解法经验
- 拉普拉斯(Laplace)变换——自控笔记系列(一)
- dsolve函数的功能_MATLAB求解常微分方程:ode45函数与dsolve函数
- 数学建模之层次分析法及其应用