Kubernetes

Share-nothing 无共享架构

·3 分钟阅读·930 字
📋 目录

Share-nothing 无共享架构

Share-nothing(无共享)是一种分布式架构设计理念,系统中每个节点配备专属独立的 CPU、内存、硬盘等资源,节点间不存在共享资源情况,各节点通过网络协议通信来协同工作,类似大规模并行处理(MPP)模式。

⚡ 核心特性

1. 横向扩展性强

各节点资源相互独立,通过增加普通服务器节点,就能近乎线性地扩充系统整体计算和存储容量,理论上具备无限扩展的可能。

2. 减少资源竞争

节点处理数据基于本地资源,没有多节点争抢内存、磁盘读写冲突等情况,并发处理性能得以提升。

3. 容错性较好

单个节点故障只会影响自身所负责部分,其他节点能正常运转。系统借助副本冗余等机制,可实现故障的局部恢复,保障整体可用性。

4. 数据本地化处理

数据按特定策略分散存储在不同节点,计算任务尽量分发到数据所在节点执行,降低跨网络数据传输开销

⚠️ 局限性

  • 跨节点查询效率低:因数据分散存储,完成跨节点的复杂数据关联查询、聚合运算时,需多节点数据交互,效率往往不高
  • 一致性协议复杂:为确保数据一致性,一般需要采用复杂的分布式一致性协议(如 Paxos、Raft)

🎯 应用场景

场景示例
分库分表的互联网交易系统MySQL Sharding、Redis Cluster
MPP 数据仓库Greenplum
大数据处理Hadoop MapReduce
分布式 KV 存储Cassandra、ScyllaDB

Share-nothing 架构在现代分布式系统中应用广泛,特别适合需要高并发写入大规模并行计算的场景。


关联文档

  • K8s 核心概念#🏗️ 集群架构 — K8s 基于无共享架构
  • ../../storage/Ceph 分布式存储 — Ceph 也采用无共享架构
  • ZooKeeper 主备切换原理 — 分布式协调与共识
  • ../../database/mysql/MySQL 高可用方案 — 数据库高可用也依赖无共享设计

关联文档