阿里云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