一、前言
在数据库领域,针对不同的业务需求,有不同类型的数据库方案,比如:
- 关系型数据库,如Mysql、Oracle、DB2、Sqlserver
- 非关系型数据库
- Key-Value数据库,如Memcached、Redis、MemcacheDB
- Document-based数据库,如MongoDB、CouchDB
- Column-based数据库,如Cassandra、HBase
- 图形数据库,如Neo4J、InforGrid
下图是在DB排名网站https://db-engines.com/en/ranking的TOP20数据库:
可见Cassandra是列数据库中最热门的,Cassandra有如下一些特点:
- 极高的读写性能,写入操作只涉及到顺序写入和内存操作,具有很高的写性能;而进行读操作时,Cassandra实现数据分层存储,将热点数据放在Memtable和相对小的SSTable中,所以具有很高的读性能。
- 简单的部署结构,Cassandra是去中心化的P2P结构,所有节点完全一样没有单点问题
上图是但数据中心consistency level 是1的数据读取过程,节点10是Coordinator,负责和客户端交互,真正的数据有三个副本分别在1,3,6节点,由于consistency level 是1,所以只要从节点1读取数据并返回就可以了。更复杂的场景可以在这里找到分析。
本文讲述如何在Kubernetes部署带持久存储的高可用Cassandra集群。
转载自https://blog.csdn.net/cloudvtech
二、安装Cassandra集群
2.1 准备工作
创建namespace
kubectl create ns cassandra
创建Ceph S