阿里云智能高级技术专家 - ucc.alicdn.com˜¿里云... · 阿里云cassandra-云化点 •...

34
恬泰 阿里云智能高级技术专家

Upload: others

Post on 19-Jul-2020

7 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 阿里云智能高级技术专家 - ucc.alicdn.com˜¿里云... · 阿里云Cassandra-云化点 • 条带化管理磁盘:联合复用多盘能力,吞吐最高可提升22% •

恬泰阿里云智能高级技术专家

Page 2: 阿里云智能高级技术专家 - ucc.alicdn.com˜¿里云... · 阿里云Cassandra-云化点 • 条带化管理磁盘:联合复用多盘能力,吞吐最高可提升22% •

阿里云Cassandra技术架构及最佳实践

恬泰

Page 3: 阿里云智能高级技术专家 - ucc.alicdn.com˜¿里云... · 阿里云Cassandra-云化点 • 条带化管理磁盘:联合复用多盘能力,吞吐最高可提升22% •

大纲

阿里云Cassandra特

性介绍

Cassandra架构介绍

Apache Cassandra介

最佳实践及案例

Page 4: 阿里云智能高级技术专家 - ucc.alicdn.com˜¿里云... · 阿里云Cassandra-云化点 • 条带化管理磁盘:联合复用多盘能力,吞吐最高可提升22% •

Why does Cassandra Exist?

Page 5: 阿里云智能高级技术专家 - ucc.alicdn.com˜¿里云... · 阿里云Cassandra-云化点 • 条带化管理磁盘:联合复用多盘能力,吞吐最高可提升22% •

Cassandra历史

Page 6: 阿里云智能高级技术专家 - ucc.alicdn.com˜¿里云... · 阿里云Cassandra-云化点 • 条带化管理磁盘:联合复用多盘能力,吞吐最高可提升22% •

DB-Engines Ranking

Page 7: 阿里云智能高级技术专家 - ucc.alicdn.com˜¿里云... · 阿里云Cassandra-云化点 • 条带化管理磁盘:联合复用多盘能力,吞吐最高可提升22% •

CAP 理论

Page 8: 阿里云智能高级技术专家 - ucc.alicdn.com˜¿里云... · 阿里云Cassandra-云化点 • 条带化管理磁盘:联合复用多盘能力,吞吐最高可提升22% •

Cassandra架构介绍

Page 9: 阿里云智能高级技术专家 - ucc.alicdn.com˜¿里云... · 阿里云Cassandra-云化点 • 条带化管理磁盘:联合复用多盘能力,吞吐最高可提升22% •

• 集群中所有节点对等,角色相同,副本可同时写• Shared nothing,竖井式架构• 按需随意增加/移除节点• 更多能力?加一台机器• Gossip交换状态,token等信息

node1

Cassandra节点对等

node4 node2

node3

Page 10: 阿里云智能高级技术专家 - ucc.alicdn.com˜¿里云... · 阿里云Cassandra-云化点 • 条带化管理磁盘:联合复用多盘能力,吞吐最高可提升22% •

数据模型

Table

clustering1cell1

Clustering2’

value1

Value2’

cellN

valueN

value2N’

clustering1N

Clustering2N’

partitionKey

KeySpace

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' };

Page 11: 阿里云智能高级技术专家 - ucc.alicdn.com˜¿里云... · 阿里云Cassandra-云化点 • 条带化管理磁盘:联合复用多盘能力,吞吐最高可提升22% •

CQL语言

• Cql类似于SQL

• DDL操作表• 支持DML操作INSERT、UPDATE、

DELETE等等• 查询数据通过select

Select * from from users where id=?

A

B

C

D

Page 12: 阿里云智能高级技术专家 - ucc.alicdn.com˜¿里云... · 阿里云Cassandra-云化点 • 条带化管理磁盘:联合复用多盘能力,吞吐最高可提升22% •

Token Ring

Token

0

26

51

76

Range

0-25

26-50

51-75

76-100

server

0-25

server

76-100

server

51-75

server

26-50

Page 13: 阿里云智能高级技术专家 - ucc.alicdn.com˜¿里云... · 阿里云Cassandra-云化点 • 条带化管理磁盘:联合复用多盘能力,吞吐最高可提升22% •

Replication

10.0.0.476-10051-7526-50

10.0.0.351-7526-5000-25

10.0.0.226-5000-2576-100

10.0.0.100-2576-10051-75

Node Primary replica replica

10.0.0.1 00-25 76-100 51-75

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

clientWrite to partition 15

RF=3

Write to partition 15

Conflict? Last write Win!

A

BD

C

Page 14: 阿里云智能高级技术专家 - ucc.alicdn.com˜¿里云... · 阿里云Cassandra-云化点 • 条带化管理磁盘:联合复用多盘能力,吞吐最高可提升22% •

一致性

D

C

B

Aclient

Write A

D

C

B

Aclient

Write A

CL=QUORUMCL=ONE

可调一致性• 可选择从强一致到最终一致• 可选:ANY,ONE,QUORUM,ALL,SERIAL

• 修复:read-repair/hint/repair

Page 15: 阿里云智能高级技术专家 - ucc.alicdn.com˜¿里云... · 阿里云Cassandra-云化点 • 条带化管理磁盘:联合复用多盘能力,吞吐最高可提升22% •

Index

A

B

C

D

User_id1 FR … …

User_id2 US … …

User_id7 FR … …

FR User_id1 User_id7 …

US User_id2 … …

Data on node D

Index on node D

User_id4 US … …

User_id5 US … …

US User_id4 User_id5 …

Data on node B

Index on node B

• 二级索引* 本地二级索引* SASI

• MV

SELECT * FROM user WHERE country LIKE ’U%’

Page 16: 阿里云智能高级技术专家 - ucc.alicdn.com˜¿里云... · 阿里云Cassandra-云化点 • 条带化管理磁盘:联合复用多盘能力,吞吐最高可提升22% •

Write Path

Page 17: 阿里云智能高级技术专家 - ucc.alicdn.com˜¿里云... · 阿里云Cassandra-云化点 • 条带化管理磁盘:联合复用多盘能力,吞吐最高可提升22% •

阿里云Cassandra特性

Page 18: 阿里云智能高级技术专家 - ucc.alicdn.com˜¿里云... · 阿里云Cassandra-云化点 • 条带化管理磁盘:联合复用多盘能力,吞吐最高可提升22% •

阿里云Cassandra-云化点

• 条带化管理磁盘:联合复用多盘能力,吞吐最高可提升22%

• 自研公网访问:多种网络环境vpc, 公网,Server自动切换路由链路,开源客户端无需改动• 自研分级安全插件:在原有super user上,多一级system user,保护云上核心资源不被篡改

逻辑盘

云盘 云盘 云盘

Page 19: 阿里云智能高级技术专家 - ucc.alicdn.com˜¿里云... · 阿里云Cassandra-云化点 • 条带化管理磁盘:联合复用多盘能力,吞吐最高可提升22% •

备份恢复

Shard1

Shard

2

shard3

Lorem Ipsum

wal wal wal wal

SST SST

SST

SST

Time

Page 20: 阿里云智能高级技术专家 - ucc.alicdn.com˜¿里云... · 阿里云Cassandra-云化点 • 条带化管理磁盘:联合复用多盘能力,吞吐最高可提升22% •

多地多活(待上线)

• 构建全地域集群:一键购买 - 自由搭配引擎内在支持异地及同城同步

• CREATE KeySpace IF NOT EXISTS test WITH REPLICATION =

{ ‘class’ : ‘NetworkTopologyStrategy’, ‘beijingC’ : 3, ‘beijingF':2,

‘hangzhouE':2};

• 另一个DC,可用于spark分析

Page 21: 阿里云智能高级技术专家 - ucc.alicdn.com˜¿里云... · 阿里云Cassandra-云化点 • 条带化管理磁盘:联合复用多盘能力,吞吐最高可提升22% •

兼容dynamodb

Page 22: 阿里云智能高级技术专家 - ucc.alicdn.com˜¿里云... · 阿里云Cassandra-云化点 • 条带化管理磁盘:联合复用多盘能力,吞吐最高可提升22% •

兼容dynamodb-IO路径

replica

replica replica

Page 23: 阿里云智能高级技术专家 - ucc.alicdn.com˜¿里云... · 阿里云Cassandra-云化点 • 条带化管理磁盘:联合复用多盘能力,吞吐最高可提升22% •

对接大数据生态打通大数据生态上下游:kafka - cassandra - spark

I OT或用户数据

OSS 块存储

≈流处理入库

C*数据库入库 数据分析

归档

kafka

Page 24: 阿里云智能高级技术专家 - ucc.alicdn.com˜¿里云... · 阿里云Cassandra-云化点 • 条带化管理磁盘:联合复用多盘能力,吞吐最高可提升22% •

后续规划

• 分级存储• SearchIndex,支持全文搜索• 支持社区4.0 & Incremental Repair

• 支持rocksdb引擎• 添加事务

Page 25: 阿里云智能高级技术专家 - ucc.alicdn.com˜¿里云... · 阿里云Cassandra-云化点 • 条带化管理磁盘:联合复用多盘能力,吞吐最高可提升22% •

业界使用案例

Page 26: 阿里云智能高级技术专家 - ucc.alicdn.com˜¿里云... · 阿里云Cassandra-云化点 • 条带化管理磁盘:联合复用多盘能力,吞吐最高可提升22% •

聊天历史保存 在线推荐 欺诈检测,新闻推

送和收件箱

Food Feed用户画像,历史订

Discord

Page 27: 阿里云智能高级技术专家 - ucc.alicdn.com˜¿里云... · 阿里云Cassandra-云化点 • 条带化管理磁盘:联合复用多盘能力,吞吐最高可提升22% •

线性扩展

自动故障转移failover

高性能 低维护成本 开源可控强类型,非raw二进制,读写比1:1 技术成熟,经过验证

Discord背景&需求

Page 28: 阿里云智能高级技术专家 - ucc.alicdn.com˜¿里云... · 阿里云Cassandra-云化点 • 条带化管理磁盘:联合复用多盘能力,吞吐最高可提升22% •

方案及效果

一亿增长至>1.2亿1天内聊天消息

RT稳定保持着良好的性能

和稳定性

一周内C* 替换mongodb

Page 29: 阿里云智能高级技术专家 - ucc.alicdn.com˜¿里云... · 阿里云Cassandra-云化点 • 条带化管理磁盘:联合复用多盘能力,吞吐最高可提升22% •

总结-为什么选择Cassandra

Page 30: 阿里云智能高级技术专家 - ucc.alicdn.com˜¿里云... · 阿里云Cassandra-云化点 • 条带化管理磁盘:联合复用多盘能力,吞吐最高可提升22% •

线性扩展(1…N)

Node1

Node2

Node1

node4

Node2

node3

Node1

node3

Node5

node7100,000ops/sec

200,000ops/sec

400,000ops/sec

Node2

node4Node6

node8

Page 31: 阿里云智能高级技术专家 - ucc.alicdn.com˜¿里云... · 阿里云Cassandra-云化点 • 条带化管理磁盘:联合复用多盘能力,吞吐最高可提升22% •

性能对比

摘自:https://www.datastax.com/nosql-databases/benchmarks-cassandra-vs-mongodb-vs-hbase

Page 32: 阿里云智能高级技术专家 - ucc.alicdn.com˜¿里云... · 阿里云Cassandra-云化点 • 条带化管理磁盘:联合复用多盘能力,吞吐最高可提升22% •

低成本部署简单,运维成本低,架构简洁,无浪

功能强大类sql的cql语言,多

语言driver

开发成本 开源可控开源成熟,可控,商

业公司支持

Cql/强大二级索引/MV/LWT/UDF/CDC

,更像真正的数据库

Page 33: 阿里云智能高级技术专家 - ucc.alicdn.com˜¿里云... · 阿里云Cassandra-云化点 • 条带化管理磁盘:联合复用多盘能力,吞吐最高可提升22% •

扫码加入社群与志同道合的码友一起

Code Up

阿里云开发者社区

粘贴二维码

Cassandra钉钉技术社区

Page 34: 阿里云智能高级技术专家 - ucc.alicdn.com˜¿里云... · 阿里云Cassandra-云化点 • 条带化管理磁盘:联合复用多盘能力,吞吐最高可提升22% •

谢谢!