Tumblr的消息通知系统是如何构建的
2012·2汇总
- 按时间排序(Ordered by time)
- 唯一性,每一条消息都是唯一的(Unique (no duplicate notifications))
- 读写比大概是 60%/30%(Medium read/write ratio (60%/30%), mostly thanks to heavy caching)
- 每个用户的消息条数一定(Fixed number of notifications per user)
- 数据按用户划分,每个用户只能读自己的消息(Keyed by user, and read only by him/her)
- notification request volume (over 7,500/s)
- data set size (23MM blogs, 100 notifications per blog, 160bytes per message),
- response times (<5ms)
由于一个Redis实例的资源消耗非常小,所以一开始就可以部署比较多的 Redis 实例,比如128个实例;
在前期业务量比较低的时候,N可以比较少,M比较多,而且主机的配置(CPU+内存)可以较低;
在后期业务量较大的时候,N可以较多,M变小。
拆分过程如下:
- 在新机器上启动好对应端口的 Redis 实例。
- 配置新端口为待迁移端口的从库。
- 待复制完成,与主库完成同步后,切换所有客户端配置到新的从库的端口。
- 配置从库为新的主库。
- 移除老的端口实例。
- 重复上述过程迁移好所有的端口到指定服务器上。
以上拆分流程是 Redis 作者提出的一个平滑迁移的过程,不过该拆分方法还是很依赖 Redis 本身的复制功能的,如果主库快照数据文件过大,这个复制的过程也会很久,同时会给主库带来压力。所以做这个拆分的过程最好选择为业务访问低峰时段进行。
- Machine failures:每一个 Redis 实例都有自己的 slave,这样确保可以做 failover。
- Performance:Staircar 没有 redis 快。但它最主要的目的是,让 redis 基础设施对任何客户端都是透明的。
- Early Optimization:在一个庞大的基础架构中,你会面对很多局部性细节,很慢的客户端,机器宕机,其他运维问题等。我们感兴趣的是在 redis 实例池之上,构建一个高性能代理。
转载于:https://my.oschina.net/zhengyun/blog/108423
Tumblr的消息通知系统是如何构建的相关推荐
- Redis消息通知系统的实现
Redis消息通知系统的实现 Posted on 2012-02-29 by 老王 http://huoding.com/2012/02/29/146 最近忙着用Redis实现一个消息通知系统,今天大 ...
- 消息通知系统模型设计
本篇主要明确消息通知系统的概念和具体实现,包括数据库设计.技术方案.逻辑关系分析等.消息通知系统是一个比较复杂的系统,这里主要分析站内消息如何设计和实现. 我们常见的消息推送渠道有以下几种: 设备推送 ...
- 消息通知系统模型设计 1
本篇主要明确消息通知系统的概念和具体实现,包括数据库设计.技术方案.逻辑关系分析等.消息通知系统是一个比较复杂的系统,这里主要分析站内消息如何设计和实现. 我们常见的消息推送渠道有以下几种: 设备推送 ...
- JAVA社交平台项目第四天 消息通知系统
第4章 - 消息通知系统 学习目标: 了解消息通知系统的业务场景 了解消息通知和即时通讯区别 实现消息通知微服务的基本功能 实现文章订阅和群发消息 实现文章点赞和点对点消息 了解基于数据库实现的通知系 ...
- 消息通知系统详解2---后端设计
消息通知系统详解1-通讯方式 消息通知系统详解2-后端设计 消息通知系统详解3-Netty 消息通知系统详解4-整合Netty和WebSocket 目录 整体设计 上线登录后向系统索取 在线时系统向接 ...
- 如何实现消息通知系统
本篇主要明确消息通知系统的概念和具体实现,包括数据库设计.技术方案.逻辑关系分析等.消息通知系统是一个比较复杂的系统,这里主要分析站内消息如何设计和实现. 我们常见的消息推送渠道有以下几种: 设备推送 ...
- 消息通知系统详解1---通讯方式
消息通知系统详解1-通讯方式 消息通知系统详解2-后端设计 消息通知系统详解3-Netty 消息通知系统详解4-整合Netty和WebSocket 目录 什么是消息通知系统 系统特性 通讯方式 短连接 ...
- 如何设计一个公司级别的消息通知系统?
实际场景 早上买早点,扫码下单,用户在微信中会收到下单成功的服务通知. 扫码出地铁后,手机会收到APP支付通知. 微信.支付宝.刷卡消费后,手机会收到短信通知. 在海底捞吃完火锅,扫结账小票上的开票二 ...
- Laravel 论坛系统之消息通知功能
消息通知 这篇文章我们来开发消息通知功能,当话题有新回复时,我们将通知作者『你的话题有新回复,请查看』类似的信息. Laravel 的消息通知系统 Laravel 自带了一套极具扩展性的消息通知系统, ...
- 消息通知系统设计六要素
无论是 B 端还是 C 端产品,消息通知系统都是一个很基础且必不可少的模块,而产品经理要设计一个完整的消息通知系统并不难,只需要遵守好消息通知系统设计的六要素即可. 消息通知六要素 通知消息围绕在我们 ...
最新文章
- 7_2判断两个单链表是否相交,若相交,求出第一个交点
- 右左法则----复杂指针解析
- Windows phone 8 学习笔记(4) 应用的启动
- 搭建hexo博客并部署到github上
- Java程序员应该了解的10个设计原则
- java单例方法_Java单例模式
- @SpringBootApplication揭秘
- Ceres Solver 非线性优化库
- Inside ASP.NET 2.0-即时编译系统
- 190614每日一句
- 7、重建二叉树(Python)
- 遗传算法matlab_三分钟学会遗传算法
- Android动画之仿美团加载数据等待时,小人奔跑进度动画对话框(附顺丰快递员奔跑效果)
- 【转载】堆排序算法(图解详细流程)
- Codeforces 831 A Unimodal Array
- 使用MATLAB任意修改图片像素大小
- uni-app 图片上传插件使用说明
- java中的消息队列
- 【新书速递】信息安全标委会委员推荐的金融科技安全工具书
- 【计组】偏移地址、段地址和寻址方式
热门文章
- 百度地图标注公司那家好
- 《变革中的思索》连载三:展望个人电脑的未来之路
- Java 基于JavaMail实现向QQ邮箱发送邮件
- 25种让你精力充沛的方法
- 电脑重装系统后无法上网怎么办
- 设置ClickHouse默认用户default的密码
- ZohoCRM客户管理系统应用的案例分享
- Requested setting DATABASES, but settings are not configured. You must either define the environment
- Liunx操作指令大全(基础知识到应用(易上手),全网最全)
- win2008R2 像CA证书服务器(Linux)申请CA证书