注册中心设计 Ap 与 CP 区别|学习笔记

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
简介: 快速学习注册中心设计 Ap 与 CP 区别

开发者学堂课程【精通 Spring Cloud Alibaba注册中心设计 Ap 与 CP 区别学习笔记,与课程紧密联系,让用户快速学习知识

课程地址:https://developer.aliyun.com/learning/course/634/detail/1009


注册中心设计 Ap 与 CP 区别


内容简介:

一、 Nachos 与 Eureka 区别

二、面试过程中面试官会问到注册有哪些?


一、 Nachos 与 Eureka 区别

最大区别:

Nachos 支持两种模式 CP/Ap 模式,从 Nachos1.0版本开始,注意模式就是 Ap 模式。首先下列地址是Nachos不同版本升级的具体介绍

https://github.com/alibaba/nacos/releases

就视频中当前最高版本是1.1.4版本(是在2019年10月24日发布的)

现已经更新到2.0.3版本,更新日期为2021年7月28日

(1)1.1.4(2019.10.24)

#182运行状况检查
字段和保护阈值混淆#1409与 Istio 作为服务发现后端
集成#1507建议 shutdown.sh 脚本仅关闭当前目录中的节点,而不是所有节点。
#1665 DataSync 始终未在网络分区
#1671"客户端版本"标头未在来自 nacos 客户端#182运行状况检查
字段和保护阈值混淆#1409与 Istio 作为服务发现后端
集成#1507建议 shutdown.sh 脚本仅关闭当前目录中的节点,而不是所有节点。
在此处设置新的线程池,但不打开通告程序任务,是否添加 executor.execut(new Notifier());

(2)查看1.0.0版本

这是 Nacos 的 GA 版本,可以投入大规模生产环境。

我们在此版本中引入了几个重要的新功能和优化,其中大部分已在以前的 RC 版本中发布。我们花了大约一个月的时间来稳定和优化这个 GA 版本,其中我们修复了几个错误并适应了一些默认行为。我们还进行了压力测试,以测量Nacos的性能和容量。

即将发布一篇文章,介绍 Nacos 1.0.0带来的变化细节,请关注我们的聊天组和邮件列表。

  •  [#1041]Nacos 1.0.0 识别 Nacos 0.8.0 的数据文件
  • [#1033]nacos 控制台实例数和集群数异常。
  • [#1029]nacos dubbo 双重消费者注册错误
  • [#1008]NullPointerException 发生在群集初始化而不设置 dom 时
  •  [#998]将"服务器模式"更改为"实例默认值"
  •  [#986]属性使用可能无法关闭流
  • [#981][通知]Nacos 集群管理在 Apache SkyWalking 中被拒绝实现
  • [#974]ArrayIndexOutOfBoundsException 可能会在调用 taskDispatcher.addTask 时引发
  •  [#973]cluster.conf 文件句柄未释放
  • [#961]"checkTask NPE"在群集未初始化时发生
  • [#948]Api GET /实例应返回 404(如果未找到匹配的 ip)
  • [#946]将默认服务器模式更改为 AP
  • [#938]客户端击败处理器任务丢失
  • [#923]Nacos 1.0.0 兼容 nacos-client 0.5.0
  • [#911]添加保留的元数据键
  • [#910]持久性实例不应发送客户端节拍
  • [#870]关于 Nacos 的命名空间和租户设计
  • [#869]客户端异常消息令人困惑
  •  [#866]BeatInfo 计划属性可能存在内存可见性问题
  • [#865]校验和值不正确
  • [#839]重构 API 网址
  •  [#811]ApiCommands.updateIpPublish countDownLatch 超时问题
  • [#809]实例字段"有效"应弃用并替换为"正常"
  • [#803]纳科斯前端功能回归计划及落地
  •  [#801]Nacos 使用 nignx 作为电流限制的最佳实践文章。
  • [#757]"域"一词应替换为"服务"
  •  [#745]支持 CP、AP 或混合服务器运行模式
  • [#744]应存储和控制服务器的确切状态
  • [#725]nacos 注册表会如何进行多环境部署吗?
  • [#677]支持临时实例和持久实例
  • [#651]删除旧的 API 条目"API命令"
  • [#650]重构服务器列表管理以使其与一致性协议无关
  • [#634]增加全局一键使能开关和数据查询使能开关
  • [#629]服务器数据需要在开放流量之前预热
  • [#502]注册临时实例以及持久性实例
  •  [#501]构建 muilt 集群时运行状况检查模式配置 whit nacos sync + nacos
  • [#479]应使用标准属性语法显示和编辑元数据
  • [#327]通知 ACM 开发工具包 RAM 角色名称并访问配置 ?
  • [#269]需要在命名模块中支持服务组

[#745]持 CP、AP 或混合服务器运行模式的详细介绍:

CP 模式提供强一致性、数据持久性但网络分区容错能力。
AP 模式提供最终一致性和网络分区容错性,但提供数据持久性。
混合模式为某些数据提供 CP,为其他数据提供 AP。

服务级别信息和群集级别信息始终通过 CP 协议进行操作,因此在 AP 模式下无法对其进行编辑。

 

二、面试过程中面试官会问到注册有哪些?

Eureka、Necos、concul、Zookeeper

面试官主要会问到的核心:

1.Eureka 与 Zookeeper 实现注册的区别?

2.Eureka 与 Zookeeper 实现注册的区别?

在明白上述区别之前,需要先了解一些概念:

A. CAP定律概念:

一致性(C):在分布式系统中,如果服务器是集群的情况下,每一个节点同一时刻查询的数据必须保持一致性的问题。

就下图所示,左边的为主,右边的为从。需要先进入到主,在从主进入到从,同步的过程中存在延迟,在保证一致的情况下,主和从都在做读,必须保持他们都是正确的,不能错误,一旦出现错误的情况说明违背了一致性原则。

图片4.png

可用性(A):集群节点中,部分节点出现了故障后仍然可以继续使用

当左侧第一个出现问题后,就可以转移到中间的。

图片5.png

分区容错性(P):在分布式系统中网络存在脑裂的问题,部分的 Serve 与整个集群失去联系无法形成一个群体

在了解分区容错性之前,我们先了解脑裂,假设在 Zookeeper 当中一个zk1,一个zk2,,以及zk3,正常情况下,在这三个中只会有一个节点是主节点,这是一主多从的,但这时有一个 zk2领导,突然有一个网络分区,有时候所在的服务区节点不可能在同一个地区里面,可能跨地区、跨网络,这就会导致在后面两台 zk3、zk3的节点可能访问不到 zk2领导的节点中,这就会导致在整个集群当中有多个集群,这就是一个错误。

所以说分区容错性几乎是无法避免的,在这中结果下,我们只能选择取舍,取舍:只有在 CP/AP 平衡点。

采用:

Cp 情况下 虽然我们服务不能用给,但是必须要保证数据的一致性。

Ap 情况下 可以短暂保证数据不一致性,但是最终可以一致性,不管怎么样,要能够保证我们的服务可用。

一般情况下,大多数的注册中心都是Ap。

相关实践学习
基于MSE实现微服务的全链路灰度
通过本场景的实验操作,您将了解并实现在线业务的微服务全链路灰度能力。
相关文章
|
5天前
|
运维 Kubernetes 前端开发
云效产品使用报错问题之部署主机上的globalParams.sh中变量的值是base64编码过的,如何解决
本合集将整理呈现用户在使用过程中遇到的报错及其对应的解决办法,包括但不限于账户权限设置错误、项目配置不正确、代码提交冲突、构建任务执行失败、测试环境异常、需求流转阻塞等问题。阿里云云效是一站式企业级研发协同和DevOps平台,为企业提供从需求规划、开发、测试、发布到运维、运营的全流程端到端服务和工具支撑,致力于提升企业的研发效能和创新能力。
|
11月前
|
存储 负载均衡 Cloud Native
Nacos注册中心概述、服务注册、分级存储模型及环境隔离
Nacos注册中心概述、服务注册、分级存储模型及环境隔离
243 0
|
存储 前端开发 Java
Nacos源码结构和AP模式注册中心实现介绍
Nacos源码结构和AP模式注册中心实现介绍
|
Java 开发者 微服务
EurekaServer 服务注册中心建立|学习笔记
快速学习 EurekaServer 服务注册中心建立
96 0
EurekaServer 服务注册中心建立|学习笔记
|
存储 缓存 负载均衡
Zookeeper用作注册中心的原理
注册中心主要有三种角色: • 服务提供者(RPC Server):在启动时,向 Registry 注册自身服务,并向 Registry 定期发送心跳汇报存活状态。 • 服务消费者(RPC Client):在启动时,向 Registry 订阅服务,把 Registry 返回的服务节点列表缓存在本地内存中,并与 RPC Sever 建立连接。 • 服务注册中心(Registry):用于保存 RPC Server 的注册信息,当 RPC Server 节点发生变更时,Registry 会同步变更,RPC Client 感知后会刷新本地 内存中缓存的服务节点列表。
674 0
Zookeeper用作注册中心的原理
|
负载均衡 网络协议 JavaScript
Nacos配置中心交互模型是 push 还是 pull ?你应该这么回答
对于Nacos大家应该都不太陌生,出身阿里名声在外,能做动态服务发现、配置管理,非常好用的一个工具。然而这样的技术用的人越多面试被问的概率也就越大,如果只停留在使用层面,那面试可能要吃大亏。
312 0
Nacos配置中心交互模型是 push 还是 pull ?你应该这么回答
|
中间件
【TP5.1】使用路由进行权限验证(跟使用全局中间件验证是一样的)
【TP5.1】使用路由进行权限验证(跟使用全局中间件验证是一样的)
191 0
【TP5.1】使用路由进行权限验证(跟使用全局中间件验证是一样的)
|
Java 开发工具 git
10、服务提供者provider如何使用配置中心config
今天看看如何实现服务提供者使用配置中心的配置文件。
130 0
10、服务提供者provider如何使用配置中心config