- 快召唤伙伴们来围观吧
- 微博 QQ QQ空间 贴吧
- 文档嵌入链接
- 复制
- 微信扫一扫分享
- 已成功复制到剪贴板
阿里云cassandra技术架构及最佳实践
阿里云cassandra技术架构及最佳实践
- Apache Cassandra介 绍
- Cassandra架 构介绍
- 阿里云 Cassandra特 性介绍
- 最佳实践及 案例
展开查看详情
1 .恬泰 阿里云智能高级技术专家
2 .阿里云Cassandra技术架构及最佳实践 恬泰
3 . 大纲 Apache Cassandra架 阿里云 最佳实践及 Cassandra介 构介绍 Cassandra特 案例 绍 性介绍
4 .Why does Cassandra Exist?
5 .Cassandra历史
6 .DB-Engines Ranking
7 .CAP 理论
8 .Cassandra架构介绍
9 . Cassandra节点对等 node1 • 集群中所有节点对等,角色相同,副本可同时写 • Shared nothing,竖井式架构 • 按需随意增加/移除节点 node4 node2 • 更多能力?加一台机器 • Gossip交换状态,token等信息 node3
10 . 数据模型 CREATE TABLE timeline ( userid uuid, posted_month int, posted_time uuid, body text, posted_by text, PRIMARY KEY (userid, posted_month, posted_time) ) WITH compaction = { 'class' : 'LeveledCompactionStrategy' }; KeySpace Table cell1 cellN clustering1 clustering1N partitionKey value1 valueN Clustering2N Clustering2’ Value2’ value2N’ ’
11 . CQL语言 A • Cql类似于SQL D B • DDL操作表 Select * from from users where id=? • 支持DML操作INSERT、UPDATE、 C DELETE等等 • 查询数据通过select
12 . Token Ring server Token Range 0-25 0 0-25 server server 26 26-50 76-100 26-50 51 51-75 76 76-100 server 51-75
13 . Replication Write to partition 15 10.0.0.1 client 00-25 76-100 51-75 A 10.0.0.4 10.0.0.2 RF=3 76-100 51-75 26-50 00-25 Node Primary replica replica 26-50 76-100 10.0.0.1 00-25 76-100 51-75 D B 10.0.0.2 26-50 00-25 76-100 10.0.0.3 51-57 26-50 00-25 10.0.0.4 76-100 51-75 26-50 10.0.0.3 Write to partition 15 51-75 26-50 00-25 C Conflict? Last write Win!
14 . 一致性 CL=ONE CL=QUORUM Write A Write A client A client A D D B B C C 可调一致性 • 可选择从强一致到最终一致 • 可选:ANY,ONE,QUORUM,ALL,SERIAL • 修复:read-repair/hint/repair
15 . Index • 二级索引 * 本地二级索引 SELECT * FROM user WHERE country LIKE ’U%’ * SASI A Data on node D • MV Data on node B User_id1 FR … … User_id2 US … … User_id4 US … … User_id7 FR … … User_id5 US … … D B Index on node D Index on node B FR User_id1 User_id7 … US User_id4 User_id5 … US User_id2 … … C
16 .Write Path
17 .阿里云Cassandra特性
18 . 阿里云Cassandra-云化点 • 条带化管理磁盘:联合复用多盘能力,吞吐最高可提升22% • 自研公网访问:多种网络环境vpc, 公网,Server自动切换路由链路,开源客户端无需改动 • 自研分级安全插件:在原有super user上,多一级system user,保护云上核心资源不被篡改 逻辑盘 云盘 云盘 云盘
19 . 备份恢复 wal wal wal wal Shard1 SST SST Shard 2 Lorem Ipsum SST shard 3 SST Time
20 . 多地多活(待上线) • 构建全地域集群: 一键购买 - 自由搭配 引擎内在支持异地及同城同步 • CREATE KeySpace IF NOT EXISTS test WITH REPLICATION = { ‘class’ : ‘NetworkTopologyStrategy’, ‘beijingC’ : 3, ‘beijingF':2, ‘hangzhouE':2}; • 另一个DC,可用于spark分析
21 .兼容dynamodb
22 . 兼容dynamodb-IO路径 replica replica replica
23 . 对接大数据生态 打通大数据生态上下游:kafka - cassandra - spark ≈ 流处理入库 I OT或用户数据 数据库入库 C* 数据分析 kafka 归档 OSS 块存储
24 . 后续规划 • 分级存储 • SearchIndex,支持全文搜索 • 支持社区4.0 & Incremental Repair • 支持rocksdb引擎 • 添加事务
25 .业界使用案例
26 . Discord 聊天历史保存 在线推荐 欺诈检测,新闻推 送和收件箱 用户画像,历史订 Food Feed 单
27 . Discord背景&需求 高性能 低维护成本 线性扩展 开源可控 强类型,非raw二进 制,读写比1:1 自动故障转移failover 技术成熟,经过验证
28 . 方案及效果 一周内 RT稳定 一亿增长至>1.2亿 C* 替换mongodb 保持着良好的性能 1天内聊天消息 和稳定性
29 .总结-为什么选择Cassandra