欢迎来到天天文库
浏览记录
ID:57064118
大小:248.00 KB
页数:26页
时间:2020-07-30
《吴斌构建高可用可伸缩KV系统课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、吴斌炜@Ucloud构建高可用和弹性伸缩的KV系统Agenda常见KV存储系统如何构建高可用可伸缩KV存储系统演讲流程演讲大纲NoSQL(NotonlySQL)3易扩展高性能数据结构灵活SQL类DB如何提升性能3DB1&DB2主从写读SQL类DB如何提升性能3DB1主从写读DB2从写读主KV存储系统使用场景——缓存3MYSQLMemcache/Redis写cache失效MYSQLMemcache/Redis读Cache未命中用作缓存只能提升读性能,不能提升写性能KV存储系统常用场景——持久化DB3Redis
2、读&写用作持久库可以同时提升读写性能Memcache3动态网页中间结果更新较少的热点数据Session等临时数据不足使用场景适用场景较机器重启后热点数据丢失Redis取最新N个数据的操作排行榜应用,取TOPN操作需要精准设定过期时间的应用计数器应用消息队列缓存使用场景不足单进程容量受单机限制传统解决Redis问题的方案Sharding读写分离单机redis性能主从如何复制?自动容错?在线扩容?高可用可伸缩KV存储系统3兼容Memcache/Redis协议路由节点存储节点2存储节点1高可用可伸缩KV存储系统3
3、兼容Memcache/Redis协议路由节点1存储节点1(主)存储节点1(备)存储节点2(主)存储节点2(备)高可用可伸缩KV存储系统3兼容Memcache/Redis协议管理节点路由节点1路由表存储节点1(主)存储节点1(备)存储节点2(主)存储节点2(备)高可用可伸缩KV存储系统3兼容Memcache/Redis协议管理节点路由节点1路由表存储节点1(主)存储节点1(备)存储节点2(主)存储节点2(备)搬迁节点存储节点3高可用可伸缩KV存储系统3兼容Memcache/Redis协议管理节点路由节点1路由
4、表存储节点1(主)存储节点1(备)存储节点2(主)存储节点2(备)搬迁节点存储节点3请求获取路由心跳迁移复制如何构建高可用可伸缩KV存储系统3数据分布复制和读写自动容错在线扩缩容和负载均衡一致性hash算法Ketama算法将每个节点分为若干个虚节点(100-200)使用md5做为hash函数每4个虚拟节点为一组每个虚拟节点对应16字节的md5值中的4个字节数据分布——同构系统ABCA’B’C’DEFD’E’F’数据分布——异构系统AEF’D’B’CE’A’BC’EF异构系统在一台机器故障后多台机器能够同时恢
5、复,不过架构较为复杂复制和读写流程W1W1W4异步复制保证可用性牺牲一致性同步复制保证一致性牺牲可用性W2W3W4W3W2主从主从路由节点路由节点自动容错3管理节点路由节点1路由表存储节点1(主)存储节点1(备)存储节点2(主)存储节点2(备)HASH(KEY)路由节点2请求获取路由心跳迁移复制LVS请求DB磁盘弹性伸缩和负载均衡0N新增node3需要迁移的keynode1virtualnodenode2virtualnodenode3virtualnodekey目的节点源节点在线迁移数据3迁移完成的数据转
6、发给目的端迁移中的数据锁定写,迁移完成后转发给目的端未迁移的数据直接在源端读写分布式KV系统的不足3分布式事务较难支持冷备文件存在一致性问题实现多个key的操作较为复杂Q&A
此文档下载收益归作者所有