一篇文章认识微服务中Eureka的原理和服务注册与发现

目录

1、认识Eureka

2、Eureka原理

2.1 和Dubbo架构对比:

2.2 三大角色

3、微服务常见的注册中心

3.1 Zookeeper

3.2 Eureka

3.3 Consul

3.4 Nacos

3.5 区别

Netflix 在设计Eureka 时,遵循的就是AP原则

CAP原则又称CAP定理,指的是在一个分布式系统中

  • 一致性(Consistency)

  • 可用性(Availability)

  • 分区容错性(Partition tolerance)

1、认识Eureka

CAP原则指的是,这三个要素最多只能同时实现两点,不可能三者兼顾

Eureka是Netflix的一个子模块,也是核心模块之一。Eureka是一个基于REST的服务,用于定位服务以实现云端中间层服务发现和故障转移,服务注册与发现对于微服务来说是非常重要的,有了服务发现与注册,只需要使用服务的标识符,就可以访问到服务,而不需要修改服务调用的配置文件了,功能类似于Dubbo的注册中心,比如Zookeeper。

2、Eureka原理

SpringCloud 封装了NetFlix公司开发的Eureka模块来实现服务注册和发现

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

2.1 和Dubbo架构对比:

Eureka 包含两个组件:Eureka Server 和 Eureka Client

Eureka Server 提供服务注册服务,各个节点启动后,会在EurekaServer中进行注册,这样Eureka Server中的服务注册表中将会存储所有可用服务节点的信息,服务节点的信息可以在界面中直观的看到。

Eureka Client是一个Java客户端,用于简化EurekaServer的交互,客户端同时也具备一个内置的,使用轮询负载算法的负载均衡器。在应用启动后,将会向EurekaServer发送心跳(默认周期为30秒)。如果Eureka Server在多个心跳周期内没有接收到某个节点的心跳,EurekaServer将会从服务注册表中把这个服务节点移除掉(默认周期为90秒)。

2.2 三大角色

  • Eureka Server:提供服务的注册于发现

  • Service Provider:将自身服务注册到Eureka中,从而使消费方能够找到。

  • Service Consumer:服务消费方从Eureka中获取注册服务列表,从而找到消费服务

3、微服务常见的注册中心

3.1 Zookeeper

Zookeeper它是一个分布式服务框架,是Apache Hadoop 的一个子项目,它主要是用来解决分布式应用中经常遇到的一些数据管理问题,如:统一命名服务、状态同步服务、集群管理、分布式应用配置项的管理等。简单来说Zookeeper=文件系统+监听通知机制

3.2 Eureka

Eureka是在Java语言上,基于Restful Api开发的服务注册与发现组件,Springcloud Netflix中的重要组件。

3.3 Consul

Consul是由HashiCorp基于Go语言开发的支持多数据中心分布式高可用服务发布和注册服务软件,采用Raft算法保证服务的一致性,且支持健康检查。

3.4 Nacos

Nacos是一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。简单来说 Nacos 就是注册中心 + 配置中心的组合,提供简单易用的特性集,帮助我们解决微服务开发必会涉及到的服务注册与发现,服务配置,服务管理等问题。Nacos 还是 Spring Cloud Alibaba 组件之一,负责服务注册与发现。

3.5 区别

我们通过一张表格大致了解Eureka、Consul、Zookeeper的异同点。

选择什么类型的服务注册与发现组件,可以根据自身项目要求决定。

组件名开发语言CAP一致性算法服务健康检查对外暴露接口
EurekaJavaAP可配支持HTTP
ConsulGoCPRaft支持HTTP/DNS
ZookeeperJavaCPPaxos支持客户端
NacosJavaAPRaft支持HTTP

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/599820.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SSM在线手机品牌商城----计算机毕业设计

项目介绍 该项目为前后台项目,分为普通用户与管理员两种角色,前台普通用户登录,后台管理员登录; 管理员角色包含以下功能: 管理员登录,用户管理,品牌管理,子品牌管理,商品管理,订单管理,留言板管理等功能。 用户角…

Eclipse先关的一些配置

启动配置设置 配置项详细说明: -Xms:初始堆内存大小,设定程序启动时占用内存大小,默认物理内存1/64 -Xms -XX:InitialHeapSiz-Xmx:最大堆内存,设定程序运行期间最大可占用的内存大小。如果程序运行需要…

KK集团高管变更:陈世欣任总经理,涉无证放贷遭关注,还曾被处罚

近日,KK集团关联公司广东快客电子商务有限公司(下称“KK集团”)发生工商变更,其中郭惠波不再担任该公司总经理一职,由陈世欣接任。而在早前,陈世欣曾于2020年取代吴悦宁担任总经理职务,2021年7月…

上帝视角俯视工厂设计模式

引言 本篇聊聊设计模式中的简单工厂、工厂方法、抽象工厂设计模式,争取在看完这篇后不会再傻傻分不清以及能够应用在实际项目中 背景 以一个咱们都熟悉的场景举个例子,我们平时都会戴口罩,用来过滤一些普通病毒,大致的设计如下…

C++矩阵例题分析(3):螺旋矩阵

一、审题 时间限制:1000ms 内存限制:256MB 各平台平均AC率:14.89% 题目描述 输出一个n*n大小的螺旋矩阵。 螺旋矩阵的样子: 输入描述 共一行,一个正整数n,表示矩阵变长的长度…

NGUI基础-Widget

目录 Widget是什么 Widget组件包含的属性 Pivot Depth Size snap Aspect Free Based on Width Based on Height Widget是什么 在Unity UI系统中,"Widget"是指UI元素的基类,它为UI元素提供了位置、大小和锚点等基本属性。通过使用&qu…

LeetCode 2:两数相加

一、题目描述 给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。 请你将两个数相加,并以相同形式返回一个表示和的链表。 你可以假设除了数字 0 之外,这两个…

QT上位机开发(网络程序界面开发)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 传统的上位机对接方式还是以232、485、can为主,随着网络的发展,越来越多的设备都是以网络进行通信的。毕竟相比较之前&…

java练习题之List(ArrayList)集合练习

List集合 习题: 1:完成以下填空: List 接口的特点是元素 有序 (有|无)顺序, 可重复 (可以|不可以)重复; 2:(List)关于List 集合描述正确的是(…

肠道炎症与年龄和阿尔茨海默病病理学相关:一项人类队列研究

谷禾健康 ​阿尔茨海默 研究表明,慢性低水平的炎症(“炎症衰老”)可能是年龄相关疾病的一个介导因素,而肠道微生物通过破坏肠道屏障可能会促进炎症。 虽然老化和阿尔茨海默病(AD)与肠道微生物群组成的改变有…

Mybatis缓存实现方式

文章目录 装饰器模式Cache 接口及核心实现Cache 接口装饰器1. BlockingCache2. FifoCache3. LruCache4. SoftCache5. WeakCache 小结 缓存是优化数据库性能的常用手段之一,我们在实践中经常使用的是 Memcached、Redis 等外部缓存组件,很多持久化框架提供…

ClickHouse基础介绍

目录 前言 1、什么是clickhouse 2、OLAP场景的关键特征 3、列式存储更适合于OLAP场景的原因 4、clickhouse的独特功能 5、clickhouse的缺点 6、性能 6.1、单个大查询的吞吐量 6.2、处理短查询的延迟时间 6.3、处理大量短查询的吞吐量 6.4、数据的写入性能 前言 11月…

Keras实现seq2seq

概述 Seq2Seq是一种深度学习模型,主要用于处理序列到序列的转换问题,如机器翻译、对话生成等。该模型主要由两个循环神经网络(RNN)组成,一个是编码器(Encoder),另一个是解码器…

Dart调用JS对10000条定位数据滤波

使用Dart调用JS,还是为了练习跨语言调用; 一、编写对应的JS代码 平时在开发时不推荐将算法放在JS里,我这里是简单的做一下数据过滤; 首先生成一些随机定位数据,在实际开发中可以使用真实数据; // 随机定…

vmware虚拟机安装esxi7.0步骤

一、安装准备 1、下载镜像文件 下载链接:https://pan.baidu.com/s/12XmWBCI1zgbpN4lewqYw6g 提取码:mdtx 2、vmware新建一个虚拟机 2.1 选择自定义 2.2 选择ESXi对应版本 2.3 选择稍后安装操作系统 2.4 默认选择 2.5 自定义虚拟机名称及存储位置 2…

MyBatis学习二:Mapper代理开发、配置文件完成增删改查、注解开发

前言 公司要求没办法,前端也要了解一下后端知识,这里记录一下自己的学习 学习教程:黑马mybatis教程全套视频教程,2天Mybatis框架从入门到精通 文档: https://mybatis.net.cn/index.html Mapper代理开发 目的 解决…

Jenkins分布式实现: 构建弹性和可扩展的CI/CD环境!

Jenkins是一个流行的开源持续集成(Continuous Integration,CI)和持续交付(Continuous Delivery,CD)工具,它通过自动化构建、测试和部署过程,帮助开发团队更高效地交付软件。Jenkins的…

a标签锚点链接 + 遇到的问题

目录 需求背景实现思路遇到的问题问题解决关于锚点链接其他问题 需求背景 页面左侧是一级、二级标题,页面右侧是一级、二级标题对应的内容点击左侧标题,锚点链接,右侧内容跳转到左侧标题对应的内容区域 实现思路 通过 a 标签 id 的方法实现…

嵌入式Linux之Ubuntu学习笔记(Makefile规则格式)

Makefile里面是由一系列的规则组成的,这些规则格式如下: 目标:依赖文件集合 命令1 命令2 …… 列: main:main.o input.o calcu.o gcc -o main main.o input.o calcu.o 命令列表中的每条命令必须以TAB键开始&am…

Mac——VsCode使用格式化工具进行整理和格式化

1. 打开VSCode编辑器。 2. 点击左下角⚙️图标,打开设置 3. 进入设置后,你会看到一个搜索框,在搜索框中输入 format on save 来查找相关设置项。 4. 在设置列表中找到 Editor: Format On Save 选项,勾选它以启用在保存文件时自动格…