2-3 SpringCloud核心组件:服务注册中心 Eureka

news/2024/3/29 19:02:26/文章来源:https://blog.csdn.net/lixuanhong/article/details/129255077

文章目录

    • 服务注册与发现
    • 什么是服务注册
    • 什么是服务发现
    • Eureka 是什么
    • Eureka的设计架构
    • Eureka 与 Zookeeper 的比较
    • Zookeeper 保证 CP
    • Eureka 保证 AP

服务注册与发现

在微服务架构中,服务注册与发现是核心组件之一,手动指定每个服务是很低效
的,Spring Cloud 提供了多种服务注册与发现的实现方式,例如:Eureka、
Consul、Zookeeper。
Spring Cloud 支持得最好的是 Eureka,其次是 Consul,再次是 Zookeeper。

什么是服务注册

服务注册:将服务所在主机、端口、版本号、通信协议等信息登记到注册中心上;

什么是服务发现

服务发现:服务消费者向注册中心请求已经登记的服务列表,然后得到某个服务
的主机、端口、版本号、通信协议等信息,从而实现对具体服务的调用;

Eureka 是什么

Eureka 是一个服务治理组件,它主要包括服务注册和服务发现,主要用来搭建
服务注册中心。
Eureka 是一个基于 REST 的服务,用来定位服务,进行中间层服务器的负载均
衡和故障转移;
Eureka 是 Netflix 公司开发的,Spring Cloud 封装了 Netflix 公司开发的
Eureka 模块来实现服务注册和发现,也就是说 Spring Cloud 对 Netflix Eureka
做了二次封装;

Eureka的设计架构

Eureka 采用了 C-S(客户端/服务端)的设计架构,也就是 Eureka 由两个组件
组成:Eureka 服务端和 Eureka 客户端。Eureka Server 作为服务注册的服务
端,它是服务注册中心,而系统中的其他微服务,使用 Eureka 的客户端连接
到 Eureka Server 服务端,并维持心跳连接,Eureka 客户端是一个 Java 客户
端,用来简化与服务器的交互、负载均衡,服务的故障切换等;
有了 Eureka 注册中心,系统的维护人员就可以通过 Eureka Server 来监控系
统中各个微服务是否正常运行。

Eureka 与 Zookeeper 的比较

著名的 CAP 理论指出,一个分布式系统不可能同时满足 C(一致性)、A(可用性)
和 P(分区容错性)。
由于分区容错性在是分布式系统中必须要保证的,因此我们只能在 A 和 C 之间
进行权衡,在此 Zookeeper 保证的是 CP, 而 Eureka 则是 AP。

Zookeeper 保证 CP

在 ZooKeeper 中,当 master 节点因为网络故障与其他节点失去联系时,剩余
节点会重新进行 leader 选举,但是问题在于,选举 leader 需要一定时间, 且选
举期间整个 ZooKeeper 集群都是不可用的,这就导致在选举期间注册服务瘫痪。
在云部署的环境下,因网络问题使得 ZooKeeper 集群失去 master 节点是大概
率事件,虽然服务最终能够恢复,但是在选举时间内导致服务注册长期不可用是
难以容忍的。

Eureka 保证 AP

Eureka 优先保证可用性,Eureka 各个节点是平等的,某几个节点挂掉不会影响
正常节点的工作,剩余的节点依然可以提供注册和查询服务。而 Eureka 的客户
端在向某个 Eureka 注册或时如果发现连接失败,则会自动切换至其它节点,只
要有一台 Eureka 还在,就能保证注册服务可用(保证可用性),只不过查到的信
息可能不是最新的(不保证强一致性)。
所以 Eureka 在网络故障导致部分节点失去联系的情况下,只要有一个节点可用,
那么注册和查询服务就可以正常使用,而不会像 zookeeper 那样使整个注册服
务瘫痪,Eureka 优先保证了可用性。

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

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

相关文章

数据结构与算法(六):图结构

图是一种比线性表和树更复杂的数据结构,在图中,结点之间的关系是任意的,任意两个数据元素之间都可能相关。图是一种多对多的数据结构。 一、基本概念 图(Graph)是由顶点的有穷非空集合和顶点之间边的集合组成&#x…

每日分享(免登录积分商城系统 动力商城 兑换商城源码)

​demo软件园每日更新资源,请看到最后就能获取你想要的: 1.Python教程2022:100天从新手到大师 完整版 Python 100天从新手到大师是一个Python入门教程,Python从入门到精通,专门为热爱python的新手量身定做的学习计划,100天速成pyt…

OOM的俩种情况---主动kill/被动kill

出现OOM, 有两种处理方式:1. 主动Kill; 2. 被动Kill 例:HBase Region Server OOM定位问题复盘 现象 在HBase资源隔离项目中,对测试集群进行压测时,发现region server会出现崩溃的情况,单机请求量从>200到~50每秒都…

【Git使用教程】从入门到学废

文章目录1. 基础git流程图常用命令基本配置快捷指令解决GitBash乱码获取本地仓库基础操作指令查看修改的状态(status)添加工作区到暂存区(add)提交暂存区到本地仓库(commit)查看提交日志(log)版本回退添加文件至忽略列表总结2. 分支查看本地分支创建本地…

程序员多赚20k的接私活必备网站

为什么都是程序员,就有人能多赚20k?那是因为副业搞得那么溜啊! 今天分享一些程序员搞钱必备的接私活网站,让更多程序员们在工作之余能有另外一份收入。 1.程序员客栈:http://proginn.com 专为程序员服务的软件外包对…

超级品牌符号怎么设计?大咖有方法

怎么设计超级LOGO图标?有方法! LOGO设计大趋势:卡通化、拟人化 抽象符号已经泛滥 但卡通形象也已经泛滥 趣讲大白话:设计容易出名难 【安志强趣讲信息科技89期】 ******************************* 别以为设计一个卡通就牛X闪闪 比…

React Native使用echart——wrn-echarts

这里写自定义目录标题前言Tips详细使用过程如下1、开发环境搭建2、准备RN工程3、build App包4、 安装相关依赖5、试用Skia模式6、试用Svg模式7、封装Chart组件8、多个图表使用总结前言 平时写图表相关需求,用得最多的图表库就是echarts。echarts在web端的表现已经相…

机器学习:基于朴素贝叶斯对花瓣花萼的宽度和长度分类预测

机器学习:基于朴素贝叶斯对花瓣花萼的宽度和长度分类预测 作者:AOAIYI 作者简介:Python领域新星作者、多项比赛获奖者:AOAIYI首页 😊😊😊如果觉得文章不错或能帮助到你学习,可以点赞…

毕业设计 基于51单片机环境监测设计 光照 PM2.5粉尘 温湿度 2.4G无线通信

基于51单片机环境监测设计 光照 PM2.5粉尘 温湿度 2.4G无线通信1、项目简介1.1 系统构成1.2 系统功能2、部分电路设计2.1 STC89C52单片机核心系统电路设计2.2 dht11温湿度检测电路设计2.3 NRF24L01无线通信电路设计3、部分代码展示3.1 NRF24L01初始化3.2 NRF24L01的SPI写时序3.…

【数据库】数据库基本概念和类型

一、数据库基本概念 1、数据 所谓数据(Data)是指对客观事物进行描述并可以鉴别的符号,这些符号是可识别的、抽象的。它不仅仅指狭义上的数字,而是有多种表现形式:字母、文字、文本、图形、音频、视频等。现在…

STM32开发(16)----CubeMX配置DMA

CubeMX配置DMA前言一、什么是DMA?二、实验过程1.CubeMX配置2.代码实现3.实验结果总结前言 本章介绍使用STM32CubeMX对DMA进行配置的方法,DMA的原理、概念和特点,配置各个步骤的功能,并通过串口DMA传输实验方式验证。 一、什么是…

【学习笔记汇总】Github Note

本科毕业设计 Internet of Things environmental monitoring system based on STM32 STM32系列单片机工程模板 【STM32F103_Libary】基于STM32F103开发板的工程模板 ST7735屏幕【STM32F103Template】基于STM32F103开发板的工程模板 ILI9341屏幕【STM32F103_LibaryFinalVersio…

服务拆分及远程调用

目录 服务拆分 服务拆分注意事项 服务间调用 步骤一:注册RestTemplate 步骤二:修改业务层代码 总结: 提供者和消费者 思考 服务调用关系 服务拆分 服务拆分注意事项 单一职责:不同微服务,不要重复开发相同业…

电压放大器和电流放大器的区别是什么意思

在日常电子实验测试中,很多电子工程师都会使用到电压放大器和电流放大器,但是很多新手工程师却无法区分两者的区别,下面就让安泰电子来为我们讲解电压放大器和电流放大器的区别是什么意思。 一、电压放大器介绍: 电压放大器是一种…

2023王道考研数据结构笔记第一章绪论

第一章 绪论 1.1 数据结构的基本概念 1.数据:数据是信息的载体,是描述客观事物属性的数、字符以及所有能输入到计算机中并被程序识别和处理的符号的集合。 2.数据元素:数据元素是数据的基本单位,通常作为一个整体进行考虑和处理…

【MySQL】数据库中锁和事务的相关知识点

1.事务的四大特点 原子性:事务中的所有操作要么都成功,要么都失败。所有的操作是一个不可分割的单位。一致性:一致性指的是事务执行前后,数据从一个合法性状态转移到另一个合法性状态。这个状态和业务有关,是自己定义…

Editor工具开发实用篇:EditorGUI/EditorGUILayout的区别和EditorGUILayout的方法介绍

目录 一:EditorGUI和EditorGUILayout区别 二:EditorGUILayout 1.EditorGUILayout.BeginFadeGroup(float value); 2.EditorGUILayout.BeginHorizontal EditorGUILayout.BeginVertical 3.EditorGUILayout.BeginScrollView 4.EditorGUILayout.BeginT…

sql-labs-Less1

靶场搭建好了,访问题目路径 http://127.0.0.1/sqli-labs-master/Less-1/ 我最开始在做sql-labs靶场的时候很迷茫,不知道最后到底要得到些什么,而现在我很清楚,sql注入可以获取数据库中的信息,而获取信息就是我们的目标…

概念+示例+横向对比+难点解析征服八大react hooks

8大hooks概念、使用场景 前言 对不同阶段的react开发者会有不同的效果,最终目的是能够对8大react hooks,完全理解,游刃有余。对比useState和useReducer,什么时候使用useMemo和useCallback,useEffect的参数… … use…

文献阅读笔记 # 面向大规模多版本软件系统的代码克隆检测加速技术

面向大规模多版本软件系统的代码克隆检测加速技术,方维康 吴毅坚 赵文耘,《计算机应用与软件》复旦大学软件学院、复旦大学上海市数据科学重点实验室2022 April 面向大规模多版本软件系统的代码克隆检测加速技术 摘要 很多代码克隆检测方法主要针对软…