新浪微博技术架构问题解析

简介:

你要问我新浪微博有什么技术压力。

我觉得,本质上:

            第一,如何快速共享数据,如何快速的将new message在网状社区中传递开来。

            第二,长期大量积累下来的数据如何分布,分散储存,保证性能。数据库的横纵切分。

            第三,机房的多备份,多备份机房之间的同步策略。

            第四,业务上的实时性是不是必须,是否能够根据业务的重拍,将一部分业务异步化,减轻系统压力。

            第五,高并发的请求重压之下,如何能够保证相应速度。

 

新浪微博首席架构师杨卫华的讲座上很好的解答了以上的这些问题。

具体参见以下资料:

http://mp.weixin.qq.com/s?__biz=MzA4NDc2MDQ1Nw==&mid=2650237833&idx=2&sn=a02e5ced24f6ea7141904324dd534627#rd

 

问题:[第一,如何快速共享数据,如何快速的将new message在网状社区中传递开来。]

回答:采取push的方法,有选择性的,向长期活跃的用户push new message。

        手机上的app中,每个app都会和服务器建立长连接,一旦平台API中有new message,就会实时推送给app

 

问题:[第二,长期大量积累下来的数据如何分布,分散储存,保证性能。数据库的横纵切分。]

回答:weibo是非常有时效性的业务数据。绝大多数的数据请求都集中在最近,所以数据可以按月份横切分。同时可以在月份横切的基础上建立二级索引表。

       同时,绝大多数的请求和发帖都集中在单一的省份。因此在纵切分上,在每省都建立了独立的数据中心。

 

问题:[第三,机房的多备份,多备份机房之间的同步策略。]

回答: 每个机房都不是单点部署,单个机房的数据更新之后,都会广播到全部的所有机房,进行快速同步。

 

问题:[第四,业务上的实时性是不是必须,是否能够根据业务的重拍,将一部分业务异步化,减轻系统压力。]

回答:发weibo本身这个事情,需要经过漫长的事务链条,所以我们可以打断这个链条,将其异步化,在接收到weibo以后将其推入messageQueue,然后让其异步更新处理。

 

问题:[第五,高并发的请求重压之下,如何能够保证相应速度。]

回答:广泛的应用缓存,cache,memcached,内存数据库,将数据放在离CPU越近的地方越好。



本文转自 www19 51CTO博客,原文链接:http://blog.51cto.com/doujh/1796093,如需转载请自行联系原作者
相关文章
|
17天前
|
Linux 编译器 开发者
Linux设备树解析:桥接硬件与操作系统的关键架构
在探索Linux的庞大和复杂世界时🌌,我们经常会遇到许多关键概念和工具🛠️,它们使得Linux成为了一个强大和灵活的操作系统💪。其中,"设备树"(Device Tree)是一个不可或缺的部分🌲,尤其是在嵌入式系统🖥️和多平台硬件支持方面🔌。让我们深入了解Linux设备树是什么,它的起源,以及为什么Linux需要它🌳。
Linux设备树解析:桥接硬件与操作系统的关键架构
|
1月前
|
存储 搜索推荐 数据挖掘
ElasticSearch架构介绍及原理解析
ElasticSearch架构介绍及原理解析
102 0
|
3天前
|
前端开发 Java
SpringBoot之三层架构的详细解析
SpringBoot之三层架构的详细解析
15 0
|
27天前
|
canal 消息中间件 关系型数据库
【分布式技术专题】「分布式技术架构」MySQL数据同步到Elasticsearch之N种方案解析,实现高效数据同步
【分布式技术专题】「分布式技术架构」MySQL数据同步到Elasticsearch之N种方案解析,实现高效数据同步
76 0
|
1月前
|
运维 Linux Apache
LAMP架构调优(十)——Apache禁止指定目录PHP解析与错误页面优化
LAMP架构调优(十)——Apache禁止指定目录PHP解析与错误页面优化
199 2
|
1月前
|
消息中间件 弹性计算 Kubernetes
Knative 架构解析
【2月更文挑战第29天】Knative作为构建无服务器产品的基础设施,建立在Kubernetes和Istio之上,提供从源代码到服务的编排、流量管理、自动扩缩容和事件绑定等功能,分为Build、Eventing和Serving三个模块,旨在确保编程模型的可移植性。
|
1月前
|
设计模式 存储 API
C++桥接模式大解析:轻松设计与实现高效软件架构
C++桥接模式大解析:轻松设计与实现高效软件架构
161 0
|
1月前
|
消息中间件 存储 Cloud Native
深度剖析 RocketMQ 5.0,架构解析:云原生架构如何支撑多元化场景?
了解 RocketMQ 5.0 的核心概念和架构概览;然后我们会从集群角度出发,从宏观视角学习 RocketMQ 的管控链路、数据链路、客户端和服务端如何交互;学习 RocketMQ 如何实现数据的存储,数据的高可用,如何利用云原生存储进一步提升竞争力。
140040 2
|
1月前
|
SQL API 数据处理
新一代实时数据集成框架 Flink CDC 3.0 —— 核心技术架构解析
本文整理自阿里云开源大数据平台吕宴全关于新一代实时数据集成框架 Flink CDC 3.0 的核心技术架构解析。
719 0
新一代实时数据集成框架 Flink CDC 3.0 —— 核心技术架构解析
|
5天前
|
敏捷开发 监控 数据管理
构建高效微服务架构的五大关键策略
【4月更文挑战第20天】在当今软件开发领域,微服务架构已经成为一种流行的设计模式,它允许开发团队以灵活、可扩展的方式构建应用程序。本文将探讨构建高效微服务架构的五大关键策略,包括服务划分、通信机制、数据管理、安全性考虑以及监控与日志。这些策略对于确保系统的可靠性、可维护性和性能至关重要。

推荐镜像

更多