【Java高阶面经:微服务篇】1.微服务架构核心:服务注册与发现之AP vs CP选型全攻略

在这里插入图片描述

一、CAP理论在服务注册与发现中的落地实践

1.1 CAP三要素的技术权衡

要素AP模型实现CP模型实现
一致性最终一致性(Eureka通过异步复制实现)强一致性(ZooKeeper通过ZAB协议保证)
可用性服务节点可独立响应(支持分区存活)分区期间无法保证写操作(需多数节点可用)
分区容错性必须支持(分布式系统基本要求)必须支持(通过复制协议实现)

典型场景对比

  • 电商秒杀(AP):允许部分用户看到旧服务列表,但保证页面可访问。
  • 银行转账(CP):必须等待服务状态全局一致,避免资金不一致风险。

二、AP模型深度解析:高可用优先的设计哲学

2.1 核心场景与技术实现

2.1.1 适用场景特征
  • 动态伸缩性要求高
    容器化环境中服务实例每分钟上下线超100次(如Kubernetes集群),AP模型的无主节点架构(如Eureka集群)可避免主节点成为瓶颈。
  • 读多写少操作
    服务发现请求中查询占比>90%,写入(注册/注销)频率低,允许缓存数据短暂不一致。
2.1.2 关键技术方案

Eureka架构解析
在这里插入图片描述

  • 心跳机制:服务实例每30秒发送心跳,超时90秒标记为失效。
  • 缓存策略:客户端缓存服务列表,默认30秒更新一次,注册中心宕机时仍可调用。
  • 自我保护模式:当心跳失败比例>85%,停止剔除服务实例,避免网络分区误判。

Consul AP模式配置

# consul配置文件
datacenter = "dc1"
server = true
bootstrap_expect = 3
# 开启AP模式(牺牲强一致性换取可用性)
disable_leader = true
disable_gossip = true

三、CP模型深度解析:强一致性优先的设计哲学

3.1 核心场景与技术实现

3.1.1 适用场景特征
  • 分布式协调需求
    如Kubernetes的节点注册(需保证Pod列表实时一致)、分布式锁(如Redlock)。
  • 配置中心场景
    服务配置变更(如限流规则)需秒级同步到所有节点,避免部分节点使用旧配置导致故障。
3.1.2 关键技术方案

ZooKeeper一致性实现

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

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

相关文章

头歌软工导论作业

一.集成测试和确认测试 第1关:集成测试 1、 集成测试的主要方法有CD A、 自顶向下集成方法 B、 自底向上集成方法 C、 渐增式测试方法 D、 非渐增式测试方法 2、 目前在进行集成测试时普遍采用非渐增式测试方法。B A、 √ B、 3、 自底向上集成策略是从主控制模…

MFC:获取所有打印机的名称(打印机模块-1)

背景: 在一个 MFC 应用程序中,列出本地系统中安装的打印机,并检测是否存在“Microsoft Print to PDF”或“Microsoft XPS Document Writer”虚拟打印机。如果有,则选择其中一个作为默认或后续操作对象;如果没有&#…

设计模式-行为型模式(详解)

模板方法 模板方法模式,它在一个抽象类中定义了一个算法(业务逻辑)的骨架,具体步骤的实现由子类提供,它通过将算法的不变部分放在抽象类中,可变部分放在子类中,达到代码复用和扩展的目的。 复用: 所有子类可以直接复…

STM32中的IIC协议和OLED显示屏

串口通信协议的缺点 串口通信通常需要至少三条线(TX、RX和GND),而 I2C 总线仅需要两条信号线(SDA和SCL); 串口通信仅支持一对一通信,而 I2C 总线支持多机通信,允许单个主机与多个从…

30个性能优化方案

1.用String.format拼接字符串 不知道你有没有拼接过字符串,特别是那种有多个参数,字符串比较长的情况。 比如现在有个需求:要用get请求调用第三方接口,url后需要拼接多个参数。 以前我们的请求地址是这样拼接的: S…

docker中部署Universal Media Server (UMS)

Universal Media Server (UMS) 本身主要是作为桌面服务程序开发的(主要面向 Java GUI DLNA 播放),但确实可以通过 Docker 进行部署。虽然官方没有提供 Docker 镜像,但社区有一些可用的方式可以在 Docker 中运行它。 下面是一个可…

配置文件,xml,json,yaml,我该选哪个?

文章目录 一、核心特性对比二、性能与生态系统三、适用场景与选型建议四、替代方案与趋势五、总结 在软件开发中,配置文件格式的选择直接影响开发效率和维护成本。XML、JSON、YAML 是目前主流的三种格式,但它们各有适用场景和局限性。本文将从语法特性、…

产品迭代与放弃的判断:MVP、PMF 与 Scale Fit 的三重验证

在创业和产品管理的世界里,一个永恒的难题是:什么时候应该继续投入资源进行产品迭代?什么时候又该果断放弃? 这是一个既关乎战略方向,又涉及资源分配的核心命题。许多初创公司或产品团队往往在错误的方向上坚持太久&a…

DAY 35 模型可视化与推理

知识点回顾: 三种不同的模型可视化方法:推荐torchinfo打印summary权重分布可视化进度条功能:手动和自动写法,让打印结果更加美观推理的写法:评估模式 作业:调整模型定义时的超参数,对比下效果。…

20250523-BUG-E1696:无法打开元数据文件“platform.winmd(已解决)

BUG:E1696:无法打开元数据文件“platform.winmd(已解决) 最近在用VisualStudio2022打开一个VisualStudio2017的C老项目后报了这个错,几经周折终于解决了,以下是我用的解决方法: 将Debug从Win32改…

Hellorobot 移动操作机器人开源实践:HPR 模型 + 全栈资源,降低家庭机器人开发门槛

Hellorobot在DobbE框架中扮演了重要的技术支柱角色。通过其尖端的模块化设计和高效算法优化,Hellorobot为家庭机器人领域注入了强大的创新动力。DobbE框架的核心技术——Home Pretrained Representations (HPR) 模型,得益于Hellorobot的技术支持&#xf…

onnx模型转入rknn3399平台上工作记录

1.rknn虚拟环境使用时报错问题 使用rknn17环境的报错: ImportError: libdc1394.so.22: cannot open shared object file: No such file or directory 参考链接:https://blog.csdn.net/2301_80032564/article/details/142316410 创作软连接: …

杰发科技AC7840——CSE硬件加密模块使用(1)

1. 简介 2. 功能概述 3. 简单的代码分析 测试第二个代码例程 初始化随机数 这里的CSE_CMD_RND在FuncID中体现了 CSE_SECRET_KEY在17个用户KEY中体现 最后的读取RNG值,可以看出计算结果在PRAM中。 总的来看 和示例说明一样,CSE 初次使用,添加…

AI要掌握的知识

AI(人工智能)是一个跨学科的复杂领域,其知识体系涵盖理论基础、技术工具和实践应用等多个层面。以下从核心知识模块、技术工具、实践方向等角度,详细梳理 AI 从业者需要掌握的知识体系: 一、数学基础:AI 的…

Python Click库:轻松构建优雅的命令行工具

Python Click库:轻松构建优雅的命令行工具 引言一、Click 适用场景二、安装 Click三、基础使用1. 第一个 Click 程序2. 添加位置参数3. 使用选项参数 四、高级功能1. 子命令分组(多级命令)2. 参数类型验证3. 彩色终端输出 五、实用功能示例&a…

三种常见脉冲神经网络编码方式解读

速率编码(rate coding) 速率编码使用输入特征来确定尖峰频率,例如将静态输入数据(如 MNIST 图像)转换为时间上的脉冲(spike)序列。它是将神经元发放脉冲的频率与输入值(如像素强度)…

Selenium 测试框架 - Python

🚀Selenium Python 实战指南:从入门到进阶 Selenium 是 Web 自动化测试中最受欢迎的工具之一,支持多种浏览器和语言。本文将从环境搭建到多浏览器兼容、测试框架集成、元素定位方式、常用操作、浏览器配置等多个方面进行详细讲解,并分享常见的最佳实践建议。 📦一、环境…

第四十九节:图像分割-基于深度学习的图像分割

1. 引言 在计算机视觉领域,图像分割(Image Segmentation)是一项基础且关键的技术,其目标是将图像划分为多个具有特定语义的区域。随着深度学习技术的突破,基于神经网络的图像分割方法在精度和效率上都实现了质的飞跃。本文将重点介绍如何利用OpenCV结合深度学习模型实现高…

【GESP】C++三级真题 luogu-B4039 [GESP202409 三级] 回文拼接

GESP三级真题,字符串相关题目,难度★★✮☆☆。 题目题解详见:https://www.coderli.com/gesp-3-luogu-b4039/ 【GESP】C三级真题 luogu-B4039 [GESP202409 三级] 回文拼接 | OneCoderGESP三级真题,字符串相关题目,难…

什么是深度学习中的层次分类问题?

深度学习中的层次分类问题(Hierarchical Classification)是指分类任务中存在类别间的层次结构,且模型需要根据这种层次关系进行预测的问题。与传统的扁平分类(Flat Classification)不同,层次分类要求模型在…