51mee - AI智能招聘平台Logo
模拟面试题目大全招聘中心会员专区

设计一个高可用的分布式存储系统,用于存储360安全产品的日志数据,要求支持PB级数据存储,保证99.9%的可用性,并考虑数据一致性和访问性能。分析CAP理论在系统设计中的应用,如何平衡一致性、可用性和分区容忍性。

360大数据开发工程师-分布式存储难度:困难

答案

1) 【一句话结论】
采用时间哈希分片(避免热点)+ SSD+LZ4压缩(提升存储密度)+ 跨机房3副本异步批量复制(延迟控制)架构,结合CAP理论在分区容忍下选择AP模式(最终一致性+高可用),满足PB级日志存储的99.9%可用性需求。

2) 【原理/概念讲解】
老师口吻解释核心概念:

  • 分片(Sharding):将日志按时间范围(如按天/小时)切分,每个分片由不同节点存储。类比:图书馆按“2024年1月”分类,每个分类对应不同书架,避免某本书被频繁访问导致书架过载。
  • 存储介质与压缩:采用SSD(高I/O性能)+ LZ4(低压缩比+高解压速度)组合,提升PB级存储的读写效率和空间利用率。
  • 副本(Replication):每个分片配置3个副本,跨机房部署(如北京、上海、广州),通过冗余保证可用性。类比:同一本书有3本副本,分别存放在不同城市图书馆,任一城市故障仍可访问。
  • 一致性模型:
    • 强一致性(Raft协议):所有副本数据实时同步,读写强一致,但写入延迟高,分区时可能不可用。
    • 最终一致性(GFS异步复制):写入后立即返回,副本延迟同步,分区时可用性高,但读可能读到旧数据。
  • CAP理论:分布式系统无法同时满足C(一致性)、A(可用性)、P(分区容忍性),互联网系统必然分区(P),因此重点在C和A的权衡。高可用系统选择AP模式(分区容忍+最终一致性),牺牲强一致性以换取高可用。

3) 【对比与适用场景】

特性强一致性(Raft实现的多副本同步)最终一致性(GFS异步复制)
一致性保证读写强一致(所有副本数据相同)最终一致(副本延迟同步,读可能旧数据)
写入延迟较高(需同步所有副本)较低(写入后立即返回,副本稍后同步)
读取延迟较高(需从最新副本读取)较低(可从任意副本读取,可能旧数据)
适用场景金融交易、核心业务(需严格一致性)日志存储、缓存(对可用性要求高)
注意点分区时可能不可用(CA模式)分区时可用性高(AP模式),一致性延迟

4) 【示例】
伪代码展示分片与副本的请求流程:

// 客户端写入日志
client.write_log(log_data, timestamp):
    shard_id = hash(timestamp) % num_shards  // 时间哈希分片
    send_request_to_primary_replica(shard_id, log_data)

// 主副本处理写入(异步批量复制)
primary_replica.on_write(log_data, timestamp):
    local_store.put(timestamp, log_data)  // 本地存储
    # 异步批量复制(每批1000条)
    batch = [log_data]
    if len(batch) >= 1000:
        async_send_batch_to_secondary_replicas(batch)
    else:
        batch.append(log_data)

// 健康检查(故障转移)
health_check():
    for replica in all_replicas:
        send_ping(replica)
        if not receive_response(replica, timeout=5s):
            mark_replica_as_failed(replica)
            trigger_rebalance()  // 触发副本再平衡

5) 【面试口播版答案】
(约90秒)
“面试官您好,针对360安全产品的PB级日志存储需求,我设计的系统核心是分片+多副本+异步复制架构,结合CAP理论平衡一致性与可用性。首先,分片采用时间哈希策略(按日志时间范围切分,如每天一个分片),避免热点数据集中到单个节点。存储介质用SSD+LZ4压缩,提升PB级存储的读写效率和空间利用率。每个分片配置3个跨机房副本,通过异步批量复制(每批1000条日志)控制延迟,保证写入后立即返回。一致性方面,非分区时通过Raft协议实现强一致性,分区时允许最终一致性(AP模式),写入后立即返回,保证99.9%可用性。健康检查机制定期检测副本状态,故障时触发再平衡,确保服务不中断。”

6) 【追问清单】

  • 问:如何避免热点数据集中?
    答:采用时间哈希分片(按日志时间范围切分),结合轮询/随机分片策略,分散热点数据。
  • 问:副本同步的延迟如何控制?
    答:采用异步批量复制(如每批1000条日志),设置批量大小和超时时间,平衡延迟与同步效率。
  • 问:网络分区时如何保证数据一致性?
    答:分区时允许最终一致性(AP模式),写入后立即返回,副本延迟同步,分区恢复后通过Raft协议最终同步。
  • 问:PB级存储的存储介质选择?
    答:采用SSD(高I/O性能)+ LZ4(低压缩比+高解压速度)组合,提升存储密度和读写效率。

7) 【常见坑/雷区】

  • 坑1:忽略热点数据集中问题,分片策略不合理(如按用户ID分片),导致单节点压力过大。
  • 坑2:副本同步延迟过高,批量太小或超时设置不当,影响写入性能。
  • 坑3:分区时未考虑最终一致性,坚持强一致性导致可用性下降。
  • 坑4:存储介质选择错误(如HDD),不适合PB级日志的高并发读写需求。
  • 坑5:缓存策略不当,未设置淘汰机制,导致内存占用过高。
51mee.com致力于为招聘者提供最新、最全的招聘信息。AI智能解析岗位要求,聚合全网优质机会。
产品招聘中心面经会员专区简历解析Resume API
联系我们南京浅度求索科技有限公司admin@51mee.com
联系客服
51mee客服微信二维码 - 扫码添加客服获取帮助
© 2025 南京浅度求索科技有限公司. All rights reserved.
公安备案图标苏公网安备32010602012192号苏ICP备2025178433号-1