Apache Cassandra 5.0.9 介绍与选型指南

Apache Cassandra 5.0.9 认知与选型:分布式宽列 NoSQL 数据库的架构、特性、官方示例与同类对比(官方资料溯源,查询日期 2026-10-18)

Apache CassandraCassandraNoSQL2026/10/18

Apache Cassandra 5.0.9 介绍与选型指南

目标:基于官方文档、官方发行目录与项目仓库联网溯源(查询日期 2026-10-18),完成 Apache Cassandra 最新稳定版的认知与选型评估。本文属认知篇(A1),关键论断均随文标注来源,不做本地安装实测;安装部署实测请参见本专栏 B1 安装指南。

一、信息基准

1.1 查询日期与版本依据

  • 查询日期:2026-10-18(本文所有版本号、发布状态与活跃度数据均以该日联网实查为准)。
  • 本次介绍版本:Apache Cassandra 5.0.9(5.0 系列当前最新稳定 patch)。
  • 版本依据(来源:Apache 官方发行目录 downloads.apache.org/cassandra/,2026-10-18 实查):
    • 当前在架版本:5.0.9(最新稳定)、4.1.12、4.0.21、3.11.19、3.0.32(各维护分支最新 patch)。
    • 5.0.9 目录同步在架时间为 2026-08-07。
    • 另有 6.0-alpha2 开发预览版在架,属非稳定预览,不在本文介绍范围。
  • 版本状态说明(来源:cassandra.apache.org 下载页与官方文档,2026-10-18 实查):5.0 为当前主推稳定大版本,4.1/4.0 处于维护期,3.x 已接近维护尾声。

1.2 官方来源清单

来源用途地址
项目官网定位、下载、新闻https://cassandra.apache.org/
官方文档 5.0架构与特性依据https://cassandra.apache.org/doc/5.0/
CQL 语言文档语法与示例https://cassandra.apache.org/doc/latest/cql/
官方发行目录版本在架与校验文件https://downloads.apache.org/cassandra/
官方 Git 仓库代码与发布 taghttps://github.com/apache/cassandra
Apache 项目页项目状态与发版记录https://projects.apache.org/project.html?cassandra
官方 JIRA变更与缺陷记录https://issues.apache.org/jira/projects/CASSANDRA

二、软件概述

本文介绍的是 Apache Cassandra 5.0.9:一个开源的分布式宽列存储 NoSQL 数据库,采用 Apache License 2.0 许可,主要使用 Java 编写并运行于 JVM 之上(来源:cassandra.apache.org 与官方 LICENSE 文件,2026-10-18 实查)。

Cassandra 的设计目标是以「无单点故障」的 P2P 集群提供线性可扩展的高写入吞吐与跨数据中心多活能力。其数据模型取自 Google Bigtable 论文(按列族组织的稀疏宽表),分区与复制机制取自 Amazon Dynamo 论文(一致性哈希、最终一致、可调一致性级别),并以类 SQL 的 CQL(Cassandra Query Language)作为主查询接口。项目 2008 年由 Facebook 开源,2009 年进入 Apache 孵化器,2010 年毕业成为 Apache 顶级项目(来源:cassandra.apache.org 项目历史与维基百科条目交叉印证,2026-10-18 实查)。

版本定位方面,5.0 系列是继 4.0(2021-07 GA)之后的大版本,2024-11 发布 GA(来源:Apache Cassandra 官方博客「Apache Cassandra 5.0」,2026-10-18 实查)。相对 4.x,5.0 的标志性变化包括:

  • 存储级二级索引 SAI(Storage-Attached Indexes,CEP-21),索引随 SSTable 一同构建,显著改善二级查询效率;
  • 向量数据类型与近似最近邻(ANN)相似性检索(CEP-30),面向 RAG 等 AI 应用场景;
  • 统一压缩策略 UCS(Unified Compaction Strategy,CEP-19),以空间换 IO 放大、简化压缩配置;
  • 移除早已弃用的 Thrift 旧接口,运行时同时支持 Java 11 与 Java 17(17 为生产推荐),并将 ZGC 纳入生产支持范围(以上均来源:cassandra.apache.org 官方博客与 5.0 文档 What's New 章节,2026-10-18 实查)。

三、核心架构

3.1 一致性哈希分区环与虚拟节点

Cassandra 集群在逻辑上是一个一致性哈希环。每行数据按分区键经 Murmur3 哈希映射到 token 区间,从而决定其主副本节点。每个物理节点默认承担 16 个虚拟节点(vnode,5.0 默认配置 num_tokens: 16),使节点增减时数据再平衡粒度更细、负载更均匀(来源:cassandra.apache.org/doc/5.0/architecture/ 与 cassandra.yaml 默认值,2026-10-18 实查)。

3.2 集群通信与元数据管理

节点间通过 gossip 协议(P2P、每秒与至多 3 个节点交换状态)传播存活与负载信息,无需任何中心协调组件;表结构与拓扑元数据同样在节点间同步并持久化,4.0 起该机制完成了对故障注入的系统性加固。集群内不存在主节点、不存在元数据服务器,任意节点均可作为协调者(coordinator)接收客户端请求(来源:cassandra.apache.org/doc/5.0/architecture/overview.html,2026-10-18 实查)。

3.3 复制与可调一致性

  • 副本策略:SimpleStrategy(单数据中心)与 NetworkTopologyStrategy(多数据中心,推荐默认),每个分区按复制因子 RF 在环上/每个数据中心内保存 N 份副本。
  • 可调一致性:每次读写可指定一致性级别(ONE、QUORUM、LOCAL_QUORUM、ALL、SERIAL 等)。遵循 Dynamo 风格的 W+R>N 原则时(如写 QUORUM + 读 QUORUM),可在最终一致基础上获得强一致读取效果。
  • 轻量级事务(LWT):基于 Paxos 的 compare-and-set,为单分区提供线性一致性条件写入,弥补跨行事务的缺失(来源:cassandra.apache.org/doc/5.0/architecture/dynamo.html 与 cql/lwt 文档,2026-10-18 实查)。

3.4 LSM 存储引擎

写入路径为典型 LSM-Tree:commitlog(顺序追加 WAL,保证持久性)→ 内存中的 memtable → 满后刷写为不可变的 SSTable。读取时按 Bloom 过滤器与分区索引定位各 SSTable 后合并;后台 compaction 负责合并 SSTable、回收被删除数据(墓碑)与过期数据。5.0 引入的 UCS 统一压缩策略以参数化方式在空间放大与 IO 放大间折衷,减少针对不同负载的手工选型负担(来源:cassandra.apache.org/doc/5.0/operating/compaction 与 CEP-19,2026-10-18 实查)。

3.5 高可用与数据修复

副本写失败时通过 hinted handoff 记录并在节点恢复后补发;读路径上的 read repair 与周期性 nodetool repair(基于 Merkle 树的反熵修复)负责收敛副本间不一致;多数据中心部署下机架感知的 snitch 决定副本分布,支持按 DC 独立的一致性与容量规划(来源:cassandra.apache.org/doc/5.0/architecture/ 与 operating/repair 文档,2026-10-18 实查)。

3.6 索引体系与向量检索

除主键查询外,Cassandra 提供 SAI 存储级索引(覆盖标量、集合、文本与向量列,索引数据随 SSTable 持久化)与 5.0 新增的向量列(vector 类型)加 ANN 索引,用于语义相似检索。传统二进制实现的老式 secondary index 在 5.0 中继续可用但不再是推荐路径(来源:cassandra.apache.org/doc/5.0/cql/vector 与 CEP-21/CEP-30,2026-10-18 实查)。

四、功能特性

功能域说明来源
CQL 查询语言类 SQL 语法(DDL/DML/聚合/角色授权),cqlsh 交互工具cassandra.apache.org/doc/latest/cql/
多数据中心多活NetworkTopologyStrategy 按 DC 复制,LOCAL_QUORUM 本地强一致doc/5.0/architecture
可调一致性每查询一致性级别,一致性/可用性按业务折衷doc/5.0/dynamo
LWT 轻量事务单分区线性一致 CAS 写入cql/lwt
SAI 存储级索引5.0 主推的二级索引,标量/集合/文本/向量统一支撑CEP-21
向量相似检索vector 类型 + ANN 索引,面向语义搜索CEP-30
安全内置角色与权限(RBAC)、节点间与客户端 TLS、JMX 认证、审计日志doc/5.0/security
可观测nodetool、virtual tables、JMX metrics 与全量查询日志doc/5.0/operating
压缩与压缩策略各类压缩算法(LZ4/Snappy/Deflate/Zstd)与 UCS/TWCS/STCS 压缩策略operating/compaction
生态驱动Java/Python/Go/Node.js 等官方与社区驱动,协议 CQL Binary v5+官方客户端驱动页

💡 说明:上表来源列均为官方文档相对路径,完整域名前缀为 https://cassandra.apache.org/,2026-10-18 实查。

五、快速上手

以下示例引自官方文档《Getting Started — Querying》与 CQL 文档(来源:https://cassandra.apache.org/doc/latest/getting_started/querying.html ,2026-10-18 实查),语法在 5.0.9 中原样适用;本文不做本地实测。

  1. 建键空间与表(官方原文示例,store.shopping_cart):
CREATE KEYSPACE IF NOT EXISTS store
    WITH replication = {'class': 'SimpleStrategy', 'replication_factor': '1'}
    AND durable_writes = true;

CREATE TABLE IF NOT EXISTS store.shopping_cart (
    userid uuid PRIMARY KEY,
    item_count int,
    last_update timestamp
);
  1. 写入与读取(官方文档 CQL DML 语法示例风格):
INSERT INTO store.shopping_cart (userid, item_count, last_update)
    VALUES (uuid(), 3, toTimestamp(now()));

SELECT item_count, last_update FROM store.shopping_cart
    WHERE userid = 5b6962dd-3f90-4c93-8f61-eabfa4a803e2;
  1. 5.0 新增向量列与相似检索(官方 5.0 向量文档语法风格,来源:https://cassandra.apache.org/doc/5.0/cql/vector.html ):
CREATE TABLE store.comments (
    comment_id uuid PRIMARY KEY,
    comment_text text,
    comment_vector vector<float, 3>
);

SELECT comment_id FROM store.comments
    ORDER BY comment_vector ANN OF [0.2, 0.15, 0.3] LIMIT 5;

💡 说明:官方发行目录同时提供 tarball 与 Debian/RPM 仓库安装路径(https://cassandra.apache.org/_/download.html ),本篇不展开安装实测。

六、适用场景与限制

6.1 适用场景

  • 写入吞吐优先、按时间追加的海量数据:日志与事件流水、遥测/IoT 设备数据、消息元数据。
  • 跨地域多活部署:多地写入、LOCAL_QUORUM 本地低延迟读写。
  • 高可用无单点诉求:不允许单点故障、允许最终一致的业务底座。
  • 查询模式固定、可按查询建模的 OLTP 型 KV/宽表负载。
  • 5.0 之后新增:面向 RAG/推荐召回的向量相似检索(依托 SAI 与 ANN)。

6.2 限制与注意

  • 无跨分区 ACID 事务;跨行/跨表一致性仅能靠 LWT(单分区)或应用层补偿实现。
  • 数据建模必须「面向查询」设计,反范式与冗余是常态;不提供表间 JOIN 与任意 ad-hoc 分析查询。
  • 删除是标记墓碑再由 compaction 回收,高频删除/覆盖写会造成读放大,需要按负载选择压缩策略(如 TWCS 用于时序)。
  • 修护与容量规划、GC 与 JVM 调优存在运维门槛;跨版本升级需遵循官方滚动升级路径。
  • 官方发行目录在架的 6.0-alpha2 属开发预览,生产选型仍应使用 5.0.x 稳定系列(来源:downloads.apache.org/cassandra/,2026-10-18 实查)。

七、同类选型对比

对比对象选取同为宽列/分布式 KV 存储的 ScyllaDB、Amazon DynamoDB 与 Apache HBase(社区活跃度数据来源:GitHub star 数与维护状态,经第三方徽章服务获取,2026-10-18 实查;版本数据来源:各自官方发布渠道)。

维度Apache Cassandra 5.0.9ScyllaDBAmazon DynamoDBApache HBase
类型定位分布式宽列 NoSQL(自建集群)Cassandra 兼容的 C++ 重写内核全托管云服务基于 HDFS 的宽列存储
许可Apache-2.0AGPL-3.0(开源核心版)闭源(商业服务)Apache-2.0
开发语言Java(JVM)C++(seastar 框架)不公开Java(JVM)
社区活跃度GitHub stars 约 10k;持续滚动发版GitHub stars 约 16k;持续滚动发版无公开仓库(托管服务)GitHub stars 约 5.6k;持续发版
版本节奏每季度 patch,5.0.9 在架(2026-08)月度级 patch,滚动快无版本号(服务持续演进)2.x/3.x 双线维护
兼容矩阵CQL Binary v5+,多语言官方驱动CQL 协议兼容,可复用 Cassandra 驱动兼容 Cassandra CQL 3.11 客户端协议原生 Java API/Thrift2/REST
硬件效率特征JVM,单节点吞吐中等,依赖调优单核性能显著更高,低尾延迟免运维、按量计费依赖 HDFS/ZooKeeper,重运维
典型用户场景多 DC 多活、写优先负载追求更高单机密度与更低延迟云上免运维、弹性伸缩已有 Hadoop/HDFS 生态

💡 选型建议:需要自建跨数据中心多活、生态与人才储备最成熟的宽列数据库,选 Cassandra;追求单机更高吞吐密度且可接受 AGPL 许可与兼容性少量偏差,选 ScyllaDB;云上免运维优先则直接用 DynamoDB(并可用 Cassandra 驱动接入);已有 HDFS 大数据平台且需与 Hadoop 生态深度整合,考虑 HBase。

八、参考链接