书籍详情

Cassandra权威指南(第三版)

Cassandra权威指南(第三版)

作者:[美] 杰夫·卡彭特,[美] 埃本·休伊特 著

出版社:中国电力出版社

出版时间:2022-05-01

ISBN:9787519866433

定价:¥128.00

购买这本书可以去
内容简介
  这本书尽可能合理地把各章设计为独立的指南。对于一本关于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。
目录
目录
序 .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
猜您喜欢

读书导航