文档章节

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

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

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

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

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

鉴客
2012/04/07
587
1
七牛架构师实践日 第三期【高性能服务端开发实践】

目前整个互联网行业已经进入了云与端的时代,随着用户量的增加和业务的扩张,终端越来越多,服务端的性能就会越来越重要,服务器资源的效率在企业成本上将占据越发重要的地位。无论是已经拥有...

七牛云
2015/12/03
385
0
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

没有更多内容

加载失败,请刷新页面

加载更多

CentOS配置Tomcat监听80端口,虚拟主机

Tomcat更改默认端口为80 更改的配置文件是: /usr/local/tomcat/conf/server.xml [root@test-a ~]# vim /usr/local/tomcat/conf/server.xml # 找到 Connector port="8080" protocol="HTTP/1......

野雪球
今天
5
0
《稻盛和夫经营学》读后感心得体会3180字范文

《稻盛和夫经营学》读后感心得体会3180字范文: 一代日本经营之圣稻盛和夫凭借刻苦勤奋的精神以及深植于佛教的商业道德准则,成为了“佛系”企业家的代表人物。在《稻盛和夫经营学》“领导人...

原创小博客
今天
3
0
java框架学习日志-5(常见的依赖注入)

依赖注入(dependency injection) 之前提到控制反转(Inversion of Control)也叫依赖注入,它们其实是一个东西,只是看的角度不同,这章详细说一下依赖注入。 依赖——指bean对象创建依赖于...

白话
今天
4
0
红外接收器驱动开发

背景:使用系统的红外遥控软件没有反应,然后以为自己接线错误,反复测试,结果烧坏了一个红外接收器,信号主板没有问题。所以自己开发了一个红外接收器的python驱动。接线参见https://my.os...

mbzhong
今天
2
0
ActiveMQ消息传送机制以及ACK机制详解

AcitveMQ是作为一种消息存储和分发组件,涉及到client与broker端数据交互的方方面面,它不仅要担保消息的存储安全性,还要提供额外的手段来确保消息的分发是可靠的。 一. ActiveMQ消息传送机...

watermelon11
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部