- 快召唤伙伴们来围观吧
- 微博 QQ QQ空间 贴吧
- 文档嵌入链接
- 复制
- 微信扫一扫分享
- 已成功复制到剪贴板
兰将州-Redis在微博场景下的优化实践
微博热门、微博红包、微博消息……Redis在微博的应用场景已经十分广泛,但随着业务的扩大,挑战也随之而来。兰将州老师就Redis在微博场景的优化展开分享,深剖在缓存、存储、队列等方面的技术选型过程,针对Redis 1.0跟不上业务需求变化、Redis容量过大、优化后仍无法满足新需求等问题,详细展示了微博在Redis方向做出的大量改进和定制工作,就高性能、大容量、可扩展三类场景提供了可借鉴的优化经验。
展开查看详情
1 .Redis在微博场景的优化实践 演讲人:微博-DBA-兰将州 全球敏捷运维峰会 北京站
2 . 自我介绍 • 2015年加入微博 • 微博-数据库平台-DBA • 负责MySQL、NoSQL、Tidb相关的自动化开发和运维 • 微博核心feed流、广告数据库业务线负责人 • 参与redis、counterservice_ssd、memcacheq相关代码开发 • 目前关注分布式系统 全球敏捷运维峰会 北京站
3 .✦Redis在微博的应用场景 ✦Redis在微博的优化 ✦未来展望 全球敏捷运维峰会 北京站
4 . Redis在微博的应用场景 全球敏捷运维峰会 北京站
5 . 业务&规模&挑战 信息流 广告 性能 QPS 100T+存储 用户关系 1000+机器 搜索 10000+实例 RT 成本 话题 视频 全球敏捷运维峰会 北京站
6 . 技术选型 缓存or存储or队列 缓存 存储 队列 是 否 大容量 吞吐量 所需数据类型是否丰富 列式存储 高容错 是 是 是 否 否 Memcached rt 高 K-V Kafka 计数服务 容量大 qps 高 qps 不大 rt 不高 是 Hbase vip qps稍低 否 是 否 是 否 Redis 单列or多列 聚合数据 水平弹性扩展 Mcq2 多 水平弹性扩展 单 是 否 是 否 落地 是 Tidb 是 否 否 Redrocks Pika Mysql Rediscounter 全球敏捷运维峰会 北京站 Counterservice Counterservice_ssd Qservice Mcq3
7 . 优化小结 • 无阻塞落地 • 增量复制 -> rdb+aof • 在线热升级 • 关系graph定制 -内存降为1/10 -性能相当 • 计数定制化 -内存降为1/4 -性能提升3-5倍 • bloomfilter 全球敏捷运维峰会 北京站
8 .Redis1.0跟不上业务需求变化 全球敏捷运维峰会 北京站
9 .✦Redis在微博的应用场景 ✦Redis在微博的优化 ✦未来展望 全球敏捷运维峰会 北京站
10 . Redis在微博的优化 • 业务:各业务方需要关心资源分布、容量规划等多方面 • DBA:需求多,资源变更频繁 高性能 大容量 可扩展 三座大山 全球敏捷运维峰会 北京站
11 . Cache Service服务化 L1 L1 configService main subscribe register HA req Client cache proxy subscribe L1 L1 main configService probe HA rw config probe retrieval captain graphite 全球敏捷运维峰会 北京站
12 . Cache Service服务化 业务 feed user Lru Lru dba configService cache service cache service 支 持 mc master-l1 master-l1 master-l1 master-l1 redis 协 议 master master master master slave slave slave slave slave-l1 slave-l1 slave-l1 slave-l1 全球敏捷运维峰会 北京站
13 . Cache Service 服务化 全球敏捷运维峰会 北京站
14 . Cache Service 服务化 • 关键字:弹性扩容 云 内网 峰值流量 应急预案 便捷 省成本 快速部署 • 成功案例:实现春晚1000+台阿里云ECS弹性扩缩容,多次实现无降级 平滑过渡,高峰期支持微博50%核心流量 全球敏捷运维峰会 北京站
15 . warden 全球敏捷运维峰会 北京站
16 . mcq 服务化 client vintage BCP graphite MQS-RPC api MQS-Manager balance web decision topic task MCQ warden DB DCP 全球敏捷运维峰会 北京站
17 . mcq 服务化 全球敏捷运维峰会 北京站
18 .全球敏捷运维峰会 北京站
19 .全球敏捷运维峰会 北京站
20 . Redis 容量过大 全球敏捷运维峰会 北京站
21 . Redrocks 特性 • 支持冷热数据分离 • 支持集群 • 支持数据持久化 • 支持主从复制 • 支持热升级 • 支持lua脚本 • 兼容redis数据类型 • 兼容与redis的数据复制 全球敏捷运维峰会 北京站
22 . Redrocks 适用场景 • 大容量 • 数据冷热区明显 • 数据冷热区别不明显,但是非超大key的场景 全球敏捷运维峰会 北京站
23 . Redrocks Main Thread Background Thread Connect Handler Replication io Protocol Parse Data Swap Command Process Bloom Filter Storage Engine 处理模块 全球敏捷运维峰会 北京站
24 . Redrocks hot RedisDB LRU warm cold “hot” data Slot Map mem swap in/out disk RDB RocksDB “cold” data AOF SSD/PCIE SAS 存储模块 全球敏捷运维峰会 北京站
25 . Redrocks 架构图 Redis事件循环 BIO线程1 BIO线程i BIO线程N 用户请求 SWAP LOAD LAZY 命令解析 FREE 异步读取冷数据 LOAD 命令处理 IO SWAP LOAD LAZY 任 FREE 务 后台任务 队 主从同步 列 异步存储冷数据 SWAP 过期 RocksDB • 简单易用:完全兼容redis,现有业务无需做任何改动 • 成本优势:热点数据在内存,冷数据落盘到磁盘,突破内存容量限制 • 高性能 :热点数据在内存,性能和redis 相当 全球敏捷运维峰会 北京站
26 . 性能压测报告 对比set随机写和get随机读qps 对比hmset 写qps cpu:20核 (Intel(R) Xeon(R) CPU E5- 2630 v4 @ 2.20GHz) memory : 128GB Disk:4T os:Linux 3.10.0-229.el7.x86_64 对比hmget 读qps 全球敏捷运维峰会 北京站
27 .仍然还有满足不了新需求? 全球敏捷运维峰会 北京站
28 . 开源解决方案 codis? twemproxy? ->tribe corvus? redis-cluster? 全球敏捷运维峰会 北京站
29 . twemproxy -> tribe 全球敏捷运维峰会 北京站