技术教育社区
www.teccses.org

Cassandra权威指南(第3版)

封面

作者:(美)杰夫·卡彭特,(美)埃本·休伊特

页数:440

出版社:中国电力出版社

出版日期:2022

ISBN:9787519866433

电子书格式:pdf/epub/txt

内容简介

这本书尽可能合理地把各章设计为独立的指南。对于一本关于Cassandra的书,这一点很重要,因为读者可能有不同的工作角色,身处不同的行业。借用软件领域的一个说法,这本书设计为是“模块化”的。如果你刚接触Cassandra,可以按顺序阅读;如果你已经过了入门阶段,也可以在后面的章节中找到你需要的内容,每一章都可以作为一个独立的指南。
第1章,这一章将回顾获得了极大成功的关系型数据库的历史,并介绍非关系型数据库技术(如Cassandra)的蓬勃兴起。
第2章,Cassandra简介
这一章介绍Cassandra,并讨论它有哪些让人激动和不同寻常的地方,它来自哪里,另外有哪些优点。
第3章,安装Cassandra
这一章会带着你安装和运行Cassandra,并尝试它的一些基本特性。
第4章,Cassandra查询语言
这一章介绍Cassandra的数据模型,重点强调它与传统关系模型的区别。我们还会讨论如何用Cassandra查询语言(CQL)表示这个数据模型。
第5章,数据建模
这一章介绍Cassandra中数据建模的原则和过程。我们会分析一个大家熟悉的领域,建立一个实际可用的模式。
第6章,Cassandra架构
这一章将帮助你了解读写操作时发生了什么,另外Cassandra数据库如何实现它的一些突出特点,如持久性和高可用性。我们会深入地理解一些更复杂的内部工作,如gossip协议、提示移交、读修复、Merkle树等。
第7章,设计使用Cassandra的应用
为了让Cassandra架构概念更为具体,我们将研究在现代云应用的架构和设计中结合Cassandra的一些常用方法。
第8章,使用驱动程序开发应用
面向不同语言有很多驱动程序,包括Java、node.js、Python、Ruby、C#和PHP,这些驱动程序对Cassandra的底层API提供了抽象。我们会帮助你了解如何利用常用驱动程序的特性用Cassandra开发应用。

作者简介

Jeff Carpenter是DataStax的开发布道师总监,利用他在系统架构、微服务和Apache Cassandra等领域的工作背景,Jeff Carpenter着力帮助开发人员和运维工程师构建可扩展、可靠且安全的分布式系统。
Eben Hewitt是Sabre Hospitality的CTO和首席架构师,他负责技术战略,同时负责设计大规模关键任务系统,并领导团队构建这些系统。他曾任全球Q最ZZZ大酒店集团之一的CTO,另外曾担任过O’Reilly Media的CIO。

本书特色

这本书告诉你为什么要在你的应用中使用Cassandra以及如何使用。
想象一下,如果解决了伸缩性问题,你能做些什么。利用这本实用指南,你会了解Cassandra数据库管理系统如何处理数百TB的数据,同时仍保持跨多个数据中心的高可用性。这一版针对Cassandra 4.0做了全面更新,提供了生产环境中使用这个数据库所需的技术细节和实用示例。
本书作者展示了Cassandra非关系型设计的诸多优点,尤其对数据建模特别关注。如果你是一个开发人员、DBA或应用架构师,着力解决数据库扩展问题或应用的前瞻性问题,这个指南将帮助你充分利用Cassandra的高速度和灵活性。
“这本书会告诉你为什么要在你的应用中使用Cassandra以及如何使用。希望你能用它创造奇迹,获得成功。” ――Patrick McFadin DataStax开发关系部副总裁

目录

目录

序 .1

前言 .3

第1 章 超越关系型数据库 13

1.1 关系型数据库有什么问题? 13

1.2 关系型数据库速览 18

1.2.1 事务、ACID 性和两段提交 19

1.2.2 模式 21

1.2.3 分片和无共享架构 22

1.3 网络规模 25

1.4 NoSQL 的兴起 26

1.5 小结 29

第2 章 Cassandra 简介 30

2.1 Cassandra 电梯间演讲 30

2.1.1 50 字Cassandra 介绍 . 30

2.1.2 分布式与去中心化 31

2.1.3 弹性可扩展 . 32

2.1.4 高可用性和容错性 33

2.1.5 可调一致性 . 33

2.1.6 Brewer 的CAP 理论 36

2.1.7 面向行 40

2.1.8 高性能 42

2.2 Cassandra 从哪里来? 42

2.3 Cassandra 适合我的项目吗? 44

2.3.1 大规模部署 . 44

2.3.2 大量写操作、统计和分析 44

2.3.3 多地分布 45

2.3.4 混合云和多云部署 45

2.4 参与其中 45

2.5 小结 48

第3 章 安装Cassandra 49

3.1 安装Apache 发布版本 49

3.1.1 解压缩下载包 50

3.1.2 里面有什么? . 50

3.2 从源码构建 . 51

3.3 运行Cassandra . 53

3.3.1 设置环境 54

3.3.2 启动服务器 . 55

3.3.3 停止Cassandra . 57

3.4 其他Cassandra 发布版本 . 58

3.5 运行CQL Shell . 59

3.6 基本cqlsh 命令 . 60

3.6.1 cqlsh 帮助 61

3.6.2 cqlsh 中描述环境 . 62

3.6.3 cqlsh 中创建键空间和表 . 62

3.6.4 cqlsh 中读写数据 . 66

3.7 Docker 中运行Cassandra . 69

3.8 小结 70

第4 章 Cassandra 查询语言 71

4.1 关系型数据模型 71

4.2 Cassandra 的数据模型 72

4.2.1 集群 75

4.2.2 键空间 76

4.2.3 表 . 76

4.2.4 列 . 80

4.3 CQL 类型 . 83

4.3.1 数值数据类型 83

4.3.2 文本数据类型 84

4.3.3 时间和标识数据类型 . 85

4.3.4 其他简单数据类型 87

4.3.5 集合 89

4.3.6 元组 93

4.3.7 用户自定义类型 93

4.4 小结 97

第5 章 数据建模 98

5.1 概念数据建模 98

5.2 RDBMS 设计 . 99

5.3 定义应用查询 . 103

5.4 逻辑数据建模 . 105

5.4.1 酒店逻辑数据模型 106

5.4.2 预订逻辑数据模型 109

5.5 物理数据建模 . 110

5.5.1 酒店物理数据模型 112

5.5.2 预订物理数据模型 113

5.6 评估和改进 114

5.6.1 计算分区大小 . 114

5.6.2 计算磁盘上的大小 115

5.6.3 划分大分区 117

5.7 定义数据库模式 118

5.8 小结 . 123

第6 章 Cassandra 架构 . 124

6.1 数据中心和机架 124

6.2 Gossip 和故障检测 125

6.3 Snitch . 128

6.4 环和令牌 129

6.5 虚拟节点 130

6.6 分区器 131

6.7 复制策略 132

6.8 一致性级别 133

6.9 查询和协调器节点 134

6.10 提示移交 . 135

6.11 逆熵、修复和Merkle 树 . 137

6.12 轻量级事务和Paxos . 138

6.13 Memtable、SSTable 和提交日志 140

6.14 布隆过滤器 143

6.15 缓存 143

6.16 合并 144

6.17 删除和墓碑 146

6.18 管理器和服务 147

6.18.1 Cassandra 守护进程 147

6.18.2 存储引擎 . 147

6.18.3 存储服务 . 148

6.18.4 存储代理 . 149

6.18.5 消息传递服务 149

6.18.6 流管理器 . 149

6.18.7 CQL 原生传输服务器 150

6.19 系统键空间 150

6.20 小结 153

第7 章 设计使用Cassandra 的应用 . 154

7.1 酒店应用设计 . 154

7.1.1 Cassandra 和微服务架构 154

7.1.2 一个酒店应用的微服务架构 156

7.1.3 识别限界上下文 157

7.1.4 识别服务 157

7.1.5 设计微服务持久存储 159

7.2 扩展设计 162

7.2.1 二级索引 163

7.2.2 物化视图 167

7.3 预订服务:一个示例微服务 171

7.4 部署和集成问题 172

7.4.1 服务、键空间和集群 172

7.4.2 数据中心和负载平衡 173

7.4.3 微服务间的交互 173

7.5 小结 . 175

第8 章 使用驱动程序开发应用 176

8.1 DataStax Java 驱动程序 . 177

8.1.1 开发环境配置 . 178

8.1.2 连接集群 179

8.1.3 语句 . 181

8.1.4 简单语句 181

8.1.5 准备语句 183

8.1.6 查询生成器 185

8.1.7 对象映射器 187

8.1.8 异步执行 191

8.1.9 驱动程序配置 . 193

8.1.10 元数据 . 200

8.1.11 调试和监控 202

8.2 DataStax Python 驱动程序 203

8.3 DataStax Node.js 驱动程序 204

8.4 DataStax C# 驱动程序 205

8.5 其他Cassandra 驱动程序 205

8.6 小结 . 207

第9 章 读写数据 208

9.1 写 208

9.1.1 写一致性级别 . 208

9.1.2 Cassandra 写路径 210

9.1.3 文件写入磁盘 . 212

9.1.4 轻量级事务 215

9.1.5 批处理 218

9.2 读 221

9.2.1 读一致性级别 . 221

9.2.2 Cassandra 读路径 223

9.2.3 读修复 225

9.2.4 区间查询、排序和过滤 . 228

9.2.5 分页 . 231

9.3 删除 . 233

9.4 小结 . 236

第10 章 配置和部署Cassandra . 237

10.1 Cassandra 集群管理器 . 237

10.1.1 创建集群 . 238

10.1.2 为集群增加节点 . 241

10.1.3 动态加入环 243

10.2 节点配置 . 244

10.2.1 种子节点 . 244

10.2.2 Snitch 245

10.2.3 分区器 . 247

10.2.4 令牌和虚拟节点 . 249

10.2.5 网络接口 . 250

10.2.6 数据存储 . 251

10.2.7 启动和JVM 设置 253

10.3 规划集群部署 254

10.3.1 集群拓扑和复制策略 255

10.3.2 确定集群规模 258

10.3.3 选择实例 . 259

10.3.4 存储 259

10.3.5 网络 260

10.4 云部署 . 261

10.4.1 Amazon Web 服务 262

10.4.2 Google 云平台 . 265

10.4.3 Microsoft Azure 266

10.5 小结 266

第11 章 监控 268

11.1 用JMX 监控Cassandra 268

11.2 Cassandra 的MBean . 271

11.2.1 数据库MBean . 272

11.2.2 集群相关MBean . 276

11.2.3 内部MBean 278

11.3 用nodetool 监控 . 279

11.3.1 获得集群信息 280

11.3.2 获得统计信息 283

11.4 虚拟表 285

11.4.1 系统虚拟模式 286

11.4.2 系统视图 . 287

11.5 指标 290

11.6 日志 292

11.6.1 检查日志文件 295

11.6.2 全量查询日志 296

11.7 小结 298

第12 章 维护 . 299

12.1 健康检查 . 299

12.2 常见维护任务 300

12.2.1 刷新输出 . 300

12.2.2 清理 301

12.2.3 修复 302

12.2.4 重建索引 . 307

12.2.5 移动令牌 . 308

12.3 增加节点 . 308

12.3.1 向已有的数据中心增加节点 . 308

12.3.2 向集群增加数据中心 309

12.4 处理节点故障 311

12.4.1 修复失败节点 311

12.4.2 替换节点 . 312

12.4.3 移除节点 . 313

12.5 升级Cassandra . 317

12.6 备份和恢复 319

12.6.1 建立快照 . 320

12.6.2 清除快照 . 321

12.6.3 启用增量备份 322

12.6.4 从快照恢复 322

12.7 SSTable 实用工具 323

12.8 维护工具 . 325

12.8.1 Netflix Priam 325

12.8.2 DataStax OpsCenter 325

12.8.3 Cassandra Sidecars . 325

12.8.4 Cassandra Kubernetes Operators . 327

12.9 小结 330

第13 章 性能调优 . 331

13.1 管理性能 . 331

13.1.1 设置性能目标 331

13.1.2 基准测试和压力测试 333

13.1.3 监控性能 . 338

13.1.4 分析性能问题 340

13.1.5 跟踪 340

13.1.6 调优方法 . 343

13.2 缓存 344

13.2.1 键缓存 . 344

13.2.2 行缓存 . 345

13.2.3 块缓存 . 346

13.2.4 计数器缓存 347

13.2.5 保存的缓存设置 . 347

13.3 Memtable 348

13.4 提交日志 . 349

13.5 SSTables . 350

13.6 提示移交 . 351

13.7 合并 352

13.8 并发和线程 356

13.9 网络和超时 357

13.10 JVM 设置 . 359

13.10.1 内存 360

13.10.2 垃圾回收 360

13.11 小结 364

第14 章 安全 . 365

14.1 认证和授权 367

14.1.1 密码认证器 367

14.1.2 使用CassandraAuthorizer 371

14.1.3 基于角色的访问控制 373

14.2 加密 375

14.2.1 SSL、TLS 和证书 . 376

14.2.2 节点间加密 379

14.2.3 客户端- 节点间加密 . 381

14.3 JMX 安全性 382

14.3.1 保护JMX 访问安全 383

14.3.2 安全MBean 385

14.4 审计日志 . 386

14.5 小结 389

第15 章 迁移和集成 390

15.1 了解何时迁移 390

15.2 调整数据模型 391

15.2.1 转换实体 . 393

15.2.2 转换关系 . 394

15.3 调整应用 . 396

15.3.1 重构数据访问 397

15.3.2 维护一致性 398

15.3.3 迁移存储过程 400

15.4 规划部署 . 405

15.5 迁移数据 . 406

15.5.1 零停机迁移 406

15.5.2 批量加载 . 407

15.6 常见集成 . 409

15.6 1 使用Apache Kafka 管理数据流 409

15.6.2 用Apache Lucene、SOLR 和Elasticsearch 搜索 412

15.6.3 使用Apache Spark 分析数据 413

15.7 小结 421

下载地址

立即下载

(解压密码:www.teccses.org)

Article Title:《Cassandra权威指南(第3版)》
Article link:https://www.teccses.org/1370000.html