文档章节

58同城徐振华:58同城分布式存储架构

凯文加内特
 凯文加内特
发布于 2015/03/02 08:42
字数 1391
阅读 157
收藏 4

58同城是位于北京的分类信息网站,提供房产、招聘、黄页、团购、交友、二手、宠物、车辆、周边游等海量分类信息。58在google top1000全球网站排行版中排名在50-60左右,而支撑58同城大规模流量的都是基于58同城自主研发的技术。作为一个创业公司,为了应对业务快速发展,58应用开源技术实现后台存储架构。

  实际上,开源的分布式存储在技术和产品技术上已经取得了巨大的突破和成就。例如Google的Dremel原理谈到如何用3秒时间分析1PB数据,Dremel是Google 的“交互式”数据分析系统。可以组建成规模上千的集群,处理PB级别的数据。一般而言磁盘的顺序读速度在100MB/s上下,在1秒内处理1TB数据意味着至少需要1万个磁盘的并发读,Dremel正是通过分布式软件实现大规模的磁盘并发,达到不可思议的处理量。

  应用开源分布式技术的Dropbox声称:每天要接受2亿次文件上传,用户总数达到2500万,估值在50亿美元到100亿美元之间。与此同时,某云存储服务商官方声明:称因为机房中的一台物理机本地磁盘损坏,导致部分用户数据丢失。

  58平台正在从分类信息平台向电子商务平台转型,决定了58同城应用的技术需要应对58同城的转型需求。徐同华分享了58同城在信息系统架构、站内信和统计数实时架构、图形处理存储架构与统计分析平台。

  谈到分布式存储的架构设计原则,徐振华谈到包括几个要点,首先需要分析需求做好平衡。一个系统很难十全十美,最重要是确定什么是核心的需求,什么是次要一级的需求。分析需求包括业务场景的详细分析,是否是核心需求?容量需求多少?数据结构如何,以结构化数据为主还是非结构化数据为主,以及数据的访问模式,读写比例、是否要求实时读写、属于顺序读写还是随机读写。

  信息对58同城至关重要,因而58同城选择了较为成熟的架构进行信息存储,核心系统选择了mySQL,选择方案的依据就是信息存储系统对58同城极为重要,务必保证稳定性。引入新技术往往会带来一些风险。

  站内信和统计数实时架构,开始的时候统计数实时架构用MySQL,但很快发现了MySQL的写性能瓶颈,包括58同城还尝试过自己写一套分布式存储文件系统,但发现维护与编写成本过于高昂,最终,58同城选择了mongos+auto Sharding的模式,徐同化谈到,mongodb的优势包括稳定、高可用、高性能、且可以线性扩展,性能表现好,查询支持好等等。

  图片存储是自主开发的文件系统,根据页面请求动态生成图片位置,数据实时计算,用以满足前端业务多样性。架构应用了前段CDN(Squid网络延时)+(LVS)+Ngix(代理,实时生成缩略图)+httpServer(接入层,webdav,SSO)+Simple GFS(主-从模式)

  徐振华介绍,58同城在进行系统架构时学习的对象包括google和Facebook,都是业内先进的互联网公司,且开源了自己的后台技术。徐振华认为Facebook提供了较好的前沿方向,为58同城构架图片架构给予了参考意义。

  58同城图片架构可以实时生成图片,小图放在内存中,因为文件小、占用空间较小;较大的图片放在SSD磁盘上,而访问不经常的图片放到更为便宜的介质上。这一套系统的优势在于:性能得到了保证,同时成本较低。

  最后58同城统计分析平台应用了Hadoop+zookeeper+hbase+redis+mongodb+的模式。提供了友好的用户界面,支持多种数据源,只需要编写部分业务代码就可以进行运行和调度。可进行用户点击行为分析,例如按时间、区域统计信息点击数,分析用户的行为模式。


本文转载自:http://storage.it168.com/a2012/0913/1397/000001397717.shtml

共有 人打赏支持
凯文加内特
粉丝 329
博文 667
码字总数 87615
作品 0
青岛
后端工程师
【PPT分享】58同城分布式存储架构实践

文档下载地址:http://www.oschina.net/bbs/doc/493 来自 58 同城技术中心架构部的徐振华

鉴客
2012/04/07
567
1
58同城沈剑:好的架构源于不停地衍变,而非设计

原文网址链接:http://www.csdn.net/article/2015-10-24/2826028 摘要:对很多创业公司而言,很难在初期就预估到流量十倍、百倍以及千倍以后网站架构会是什么样的一个状况。同时,如果系统初...

数通畅联
2015/10/30
0
0
58同城沈剑:好的架构是进化来的,不是设计来的

好的架构不是设计出来的而是演进出来的 对很多创业公司而言,在初期的时候,我们很难在初期就预估到流量十倍以后、百倍以后、一千倍以后网站的架构会变成什么样。当然,如果在最初的时期,就...

Idea
01/11
0
0
58同城技术委员会执行主席沈剑:好的架构是进化来的,不是设计来的

【编者按】对很多创业公司而言,随着业务的增长,网站的流量也会经历不同的阶段。从十万流量到一百万流量,再从一百万流量跨越到一千万甚至上亿的流量,网站的架构需要经历哪些变化?我们一起...

OneAPM蓝海讯通
2015/10/26
49
0
细谈构建高性能的网站架构以及名站架构分析一览------my note

前几天,在淘宝网站买了一本书--《构建高性能web站点》,不得不说这是我第一次真正意义上完全看完一本书,尽管曾经看过许多技术类的书。其中一个原因,就是大部分的技术类书籍偏向枯燥,即使...

crossmix
2016/03/22
54
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Nginx防盗链、访问控制、解析php相关配置、Nginx代理

一、Nginx防盗链 1. 编辑虚拟主机配置文件 vim /usr/local/nginx/conf/vhost/test.com.conf 2. 在配置文件中添加如下的内容 { expires 7d; valid_referers none blocked server_names *.tes......

芬野de博客
今天
0
0
spring EL 和资源调用

资源调用 import org.springframework.beans.factory.annotation.Value;import org.springframework.context.annotation.PropertySource;import org.springframework.core.io.Resource;......

Canaan_
今天
0
0
memcached命令行、memcached数据导出和导入

一、memcached命令行 yum装telnet yum install telent 进入memcached telnet 127.0.0.1 11211 命令最后的2表示,两位字节,30表示过期时间(秒) 查看key1 get key1 删除:ctrl+删除键 二、m...

Zhouliang6
今天
0
0
Linux定时备份MySQL数据库

做项目有时候要备份数据库,手动备份太麻烦,所以找了一下定时备份数据库的方法 Linux里有一个 crontab 命令被用来提交和管理用户的需要周期性执行的任务,就像Windows里的定时任务一样,用这...

月夜中徘徊
今天
1
1
shell-日志脚本小实验

1.查找日志2018-8-15,求得那一分钟访问量最大。 #/bin/bash#from cc#2018-8-15#2018-08-15.log 哪一分钟 访问量 最大for d in `ls /data/nginx/logs/`doif [ -a 2018-08-15...

chencheng-linux
昨天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部