【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一致性实现

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

无心水

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值