关闭顶部展开顶部

互联网知名网站的10年技术发展探索_站长新闻

编辑Tag赚U币
教程Tag:暂无Tag,欢迎添加,赚取U币!

推荐:新浪微博注册用户超3亿 移动终端占60%
球移动互联网大会在北京国家会议中心举行。会上,新浪微博事业部副总经理芦义公布了新浪微博的最新数据,包括最新的活跃用户数、通过移动终端登陆用户数、用户地理位置分布、登陆微博时间分布等。 芦义提供的数据显示: 1、新浪微博注册用户已超过3亿,其中有60%的活跃

互联网已经发展多年,其中不乏脱颖而出者,这些网站多数都已存在了接近10年或10年以上,在如此长时间的发展过程中,除了业务上面临的挑战,在技术上也面临了很多的挑战。我挑选了一些Alexa排名较前的网站(排名截止到2012年4月21日),看看它们在技术上是如何应对业务发展过程中的挑战的。

Google logo

Google目前Alexa排名第1。它诞生于1997年,当时是一个研究性项目,每个月build一次索引,build出来的索引通过sharding(shard by doc)的方式分散到多台服务器(Index Server)上,具体的网页数据同样通过sharding的方式分散到多台服务器(Doc Server)上,当用户提交请求时,通过前端的一台服务器将请求提交给Index Server获得打了分的倒排索引,然后从Doc Server提取具体的网页信息(例如网页标题、搜索关键词匹配的片段信息等),最终展现给用户。

随着索引的网页增加,这个结构可通过增加Index Server以及Doc Server来存储索引以及网页的数据,但仍然会面临其他很多方面的问题,于是在这之后的十多年的时间里,Google做了很多事情来改进上面的结构。

1999年,Google增加了一个Cache Cluster,用来Cache查询的索引结果和文档片段信息,同时将Index Server和Doc Server通过Replicate的方式变成了Cluster。这两个改造带来的好处是网站的响应速度、可支撑的访问量以及可用性(Availability)得到了提升。这个变化造成了成本的增加,Google在硬件方面的风格始终是不用昂贵的高端硬件,而是在软件层面来保证系统的可靠性及高性能,于是同年,Google开始采用自行设计的服务器来降低成本。2000年,Google开始自行设计DataCenter,采用了各种方法(例如采用其他的制冷方法来替代空调)来优化PUE(能源利用率),同时对自行设计的服务器也做了很多化。

2001年,Google对Index的格式进行了修改,将所有的Index放入内存, 这次改造带来的好处是网站的响应速度以及可支撑的访问量得到了极大的提升。2003年,Google发表了文章Google Cluster Architecture,其Cluster结构组成为硬件LB + Index Cluster + Doc Cluster + 大量廉价服务器(例如IDE硬盘、性价比高的CPU等),通过并行处理+sharding来保证在降低对硬件要求的同时,响应速度仍然很快。同年Google发表了关于Google文件系统的论文(GFS在2000年就已经上线),这篇论文很大程度也体现了Google不用昂贵硬件的风格,通过GFS+大量廉价的服务器即可存储大量的数据。

2004年,Google再次对Index的格式进行了修改,使得网站的响应速度继续提升。同年Google发表关于MapReduce的论文,通过MapReduce + 大量廉价的服务器即可快速完成以前要使用昂贵小型机、中型机甚至是大型机才能完成的计算任务,而这显然对于Google快速地构建索引提供了很大的帮助。2006年,Google发表了关于BigTable的论文(2003年开始上线),使得海量数据的分析能够达到在线系统的要求了,这对于Google提升网站的响应速度起到了很大的帮助。

以上3篇论文彻底改变了业界对于海量数据的存储、分析和检索的方法(小道消息:Google内部已完成了GFS、MapReduce、BigTable的替换),也奠定了Google在业界的技术领导地位。

在一些场景中,Google也采用MySQL来存储数据。同样,Google对MySQL也做了很多修改,它使用的MySQL信息可以从 https://code.google.com/p/google-mysql/ 了解。

2007年,Google将build索引的时间缩短到分钟级,当新网页出现后,几分钟后即可在Google搜索到,同时将Index Cluster通过Protocol Buffers对外提供Service,以供Google各种搜索(例如网页、图片、新闻、书籍等)使用,除了Index Cluster提供的Service外,还有很多其他的Service,例如广告、词法检查等。Google的一次搜索大概需要调用内部50个以上的Service,Service主要用C++或Java来编写。2009年,Google的一篇《How Google uses Linux》文章,揭示了Google在提升机器利用率方面也做了很多的努力,例如将不同资源消耗类型的应用部署在同一台机器上。

在之后,Google又研发了Colossus(下一代类GFS文件系统)、Spanner(下一代类BigTable海量存储和计算架构)、实时搜索(基于Colossus实现),主要都是为了提升搜索的实时性以及存储更多数据。除了在海量数据相关技术上的革新外,Google也不断对业界的传统技术进行创新,例如提高TCP的初始拥塞窗口值、改进HTTP的SPDY协议、新的图片格式WebP等。

在Google的发展过程中,其技术的改造主要围绕在可伸缩性、性能、成本和可用性4个方面,Google不采用昂贵硬件的风格以及领先其他网站的数据量决定了其技术改造基本都是对传统的软硬件技术的革新。

 

Facebook logo

Facebook目前Alexa排名第2。它采用LAMP构建,随着业务的发展,它也在技术上做了很多改造。

作为改造的第一步,Facebook首先在LAMP结构中增加了Memcached,用来缓存各种数据,从而大幅度提升系统的响应时间以及可支撑的访问量,之后又增加了Services层,将News Feed、Search等较通用的功能作为Service提供给前端的PHP系统使用,前端的系统通过Thrift访问这些Service。Facebook采用了多种语言来编写各种不同的Service,主要是针对不同的场景选择合适的语言,例如C++、Java、Erlang。

大量使用Memcached以及访问量的不断上涨,导致访问Memcached的网络流量太大,交换机无法支撑,Facebook通过改造采用UDP的方式来访问Memcached,以降低单连接上的网络流量。除此之外,还有其他一些改造,具体信息可以查看http://on.fb.me/8R0C 。

PHP作为脚本语言,优势是开发简单、易上手,劣势是需要消耗较多的CPU和内存。当Facebook的访问量增长到了一定规模后,这个劣势就比较突出了,于是从2007年起,Facebook就尝试多种方法来解决这个问题,最后诞生于Facebook Hackathon的HipHop产品成功地脱颖而出。HipHop可以自动将PHP转化为C++代码,Facebook在使用HipHop后,同等配置的机器,可支撑的请求量是之前的6倍,CPU的使用率平均下降了50%,从而为Facebook节省了大量主机。将来Facebook还会对HipHop进行再次改进,通过HipHop将PHP编译为bytecode,放入HipHop VM中执行,再由HipHop VM来编译为机器代码,方式与JIT类似。

2009年,Facebook研发了BigPipe,借助此系统,Facebook成功让网站的速度提升了两倍。随着Facebook访问量的上涨,收集众多服务器上的执行日志也开始面临挑战,于是Facebook研发了Scribe来解决此问题。对于存储在MySQL中的数据,Facebook采用垂直拆分库和水平拆分表的方式来支撑不断增长的数据量。作为Facebook技术体系中重要的一环,Facebook也对MySQL进行了很多优化和改进,例如Online Schema Change等,更多信息可见http://www.facebook.com/MySQLAtFacebook 。

发展之初的Facebook采用了高端的存储设备(例如NetApp、Akamai)来存图片,随着图片不断增加,成本也大幅提高,于是2009年Facebook开发了Haystack来存储图片。Haystack可采用廉价的PC Server进行存储,大幅度降低了成本。

Facebook除了使用MySQL存储数据外,近几年也开始摸索采用新的方式。在2008年Facebook开发了Cassandra,在Message Inbox Search中作为新的存储方式。不过在2010年,Facebook又放弃了Cassandra,转为采用HBase作为其Messages的存储,并在2011年将HBase应用在了Facebook更多的项目上(例如Puma、ODS)。据说,现在Facebook更是在尝试将其用户以及关系数据从MySQL迁移到HBase。

从2009年开始,Facebook尝试自行设计DataCenter以及服务器,以降低其运行成本,并对外开放了其构建的PUE仅1.07的DataCenter的相关技术。Facebook在技术方面的基本原则是:“在能用开源产品的情况下就用开源,根据情况对其进行优化并反馈给社区”。从Facebook的技术发展历程上可以看到这个原则贯彻始终,Facebook的技术改造也主要是围绕在可伸缩、性能、成本和可用性4个方面。

 

Twitter logo

Twitter目前Alexa排名第8。在2006年诞生之时是采用Ruby On Rails+ MySQL构建的,2007年增加了Memcached作为Cache层,以提升响应速度。基于Ruby on Rails让Twitter享受到了快速的开发能力,但随着访问量的增长,其对CPU和内存的消耗也让Twitter痛苦不堪,于是Twitter做了不少改造和努力,例如编写了一个优化版的Ruby GC。

2008年Twitter决定逐步往Java迁移,选择了Scala作为主力的开发语言(理由是“难以向一屋子的Ruby程序员推销Java”),采用Thrift作为其主要的通信框架,开发了Finagle作为其Service Framework,可将后端各种功能暴露为Service提供给前端系统使用,使得前端系统无需关心各种不同的通信协议(例如对于使用者可以用同样的调用服务的方式去访问Memcache、Redis、Thrift服务端),开发了Kestrel作为其消息中间件(替代之前用Ruby写的Starling)。

Twitter的数据存储一直采用MySQL,发展过程中出现的小插曲是,当Facebook开源了Cassandra时,Twitter本计划使用,但最终还是放弃,仍然保持了使用MySQL,Twitter的MySQL版本已开源(https://github.com/twitter/mysql )。Twitter也是采用分库分表的方式来支撑大数据量,使用Memcached来Cache tweet,timeline的信息则迁移为用Redis来Cache。

2010年,Twitter在盐湖城拥有了第一个自建的DataCenter,主要是为了增加可控性。从Twitter的发展过程看,6年来它的技术改造主要围绕可伸缩以及可用性。

 

作为一家电子商务网站的员工,请允许我在此介绍这个Alexa排名21的著名电子商务网站的技术演变。

1995年,eBay诞生,当时采用CGI编写,数据库采用的是GDBM,最多只能支撑5万件在线商品。1997年,eBay将操作系统从FreeBSD迁移到Windows NT,另外将数据库从GDBM迁移为Oracle。1999年,eBay将前端系统改造为Cluster(之前只有一台主机),采用Resonate作为负载均衡,后端的Oracle机器升级为Sun E1000小型机,同年给数据库增加了一台机器作为备库,提升可用性。前端机器随着访问量不断增加还可以应付,但数据库机器在1999年11月时已经达到了瓶颈(已经不能再加CPU和内存了),于是在11月开始将数据库按业务拆分为多个库。2001-2002年,eBay将数据表进行了水平拆分,例如按类目存储商品,同时部署Oracle的小型机换为Sun A3500。2002年,将整个网站迁移为用Java构建,在这个阶段,做了DAL框架来屏蔽数据库分库分表带来的影响,同时还设计了一个开发框架以供开发人员更好地上手进行功能开发。从eBay的整个发展过程来看,技术改造主要围绕在可伸缩性和可用性两点。

 

腾讯目前Alexa排名第9。最初QQ IM采用的是单台接入服务器来处理用户的登录和状态保持,但在发展到一百万用户同时在线时,这台服务器已经无法支撑。于是QQ IM将所有单台服务器改造为了集群,并增加了状态同步服务器,由其完成集群内状态的同步,用户的信息存储在MySQL中,做了分库分表,好友关系存储在自行实现的文件存储中。为了提升进程间通信的效率,腾讯自行实现了用户态IPC。之后腾讯将状态同步服务器也改造为同步集群,以支撑越来越多的在线用户。在经历了前面几次改造后,已基本能支撑千万级别的用户同时在线,但可用性比较差,于是腾讯对QQ IM再次进行改造,实现了同城跨IDC的容灾,加强了监控和运维系统的建设。此后腾讯决定对QQ IM架构完全重写(大概是2009年持续到现在),主要是为了增强灵活性、支持跨城市的IDC、支撑千万级的好友。在这次大的技术改造过程中,腾讯的数据都不再存储于MySQL中,而是全部存储在了自己设计的系统里。

从QQ IM的技术演变来看,其技术改造主要是围绕在可伸缩性和可用性上。

 

2003年,淘宝诞生,直接购买了一个商业的phpAuction的软件,在此基础上改造产生了淘宝。2004年,将系统由PHP迁移到Java,MySQL迁移为Oracle(小型机、高端存储设备),应用服务器采用了WebLogic。2005-2007年的发展过程中,用JBoss替代了WebLogic,对数据库进行了分库,基于BDB做了分布式缓存,自行开发了分布式文件系统TFS以支持小文件的存储,并建设了自己的CDN。2007-2009年对应用系统进行垂直拆分,拆分后的系统都以Service的方式对外提供功能,对数据采用了垂直和水平拆分。

在进行了数据的垂直和水平拆分后,Oracle产生的成本越来越高,于是在之后的几年,淘宝又开始将数据逐渐从Oracle迁移到MySQL,同时开始尝试新型的数据存储方案,例如采用HBase来支撑历史交易订单的存储和检索等。近几年淘宝开始进行Linux内核、JVM、Nginx等软件的修改定制工作,同时也自行设计了低能耗服务器,同时在软硬件上进行优化,以更好地降低成本。

从淘宝的整个发展过程来看,技术改造主要围绕在可伸缩性和可用性两点,现在也开始逐渐将精力投入在了性能和成本上。目前淘宝的Alexa排名为第14。

总结

从上面这些Alexa排名靠前网站的技术发展过程来看,每家网站由于其所承担的业务不同、团队人员组成不同、做事风格相异,在技术的不同发展阶段中会采用不同的方法来支撑业务的发展,但基本都会围绕在可伸缩性、可用性、性能以及成本这4点上,在发展到比较大规模后,各网站在技术结构上有了很多的相似点,并且这些结构还将继续进行演变。

作者林昊,目前就职于淘宝,2007-2010年负责设计和实现淘宝的服务框架,此服务框架在淘宝大面积使用,每天承担了150亿+的请求;2011年开始负责HBase在淘宝的落地,目前淘宝已有20个以上的在线项目在使用HBase。

分享:百度历程:百度历年首页截图欣赏
网络可能不好时,你会输入什么网址?几乎所有中国网民的回答都是百度。一路走来,你还记得百度当初青涩模样吗?你开始上网时的百度首页是哪一版?想看百度03年以前的模样么? 百度发展历程: 2000年1月创立于北京中关村,是全球最大的中文搜索引擎。 2000年1月1日,公司创

来源:未知//所属分类:站长新闻/更新时间:2012-06-15
loading.. 评论加载中....
相关站长新闻
闂傚倸鍊搁崐鐑芥倿閿曞倹鍎戠憸鐗堝笒閺勩儵鏌涢弴銊ョ仩闁搞劌鍊垮娲敆閳ь剛绮旈悽绋跨;闁靛牆顦伴悡娑㈡煕閵夈劌鐓愮紒鑸电〒缁辨挸顓奸崱娆忊拰闂佸搫鏈惄顖炲春閸曨垰绀冩い蹇庣椤矂姊绘担鐟扳枙闁衡偓鏉堚晜鏆滄俊銈呮噹妗呴梺鍛婃处閸ㄤ即宕¢搹顐$箚闁靛牆鍊告禍鐐箾鐎涙ḿ鐭嬮柛搴㈠▕閳ユ棃宕橀鍢壯囩叓閸ャ劍绀堥懖鏍⒒娴g儤鍤€闁搞倖鐗犻獮蹇涙晸閿燂拷
濠电姷鏁告慨鐑藉极閹间礁纾绘繛鎴欏焺閺佸銇勯幘璺烘瀾闁告瑥绻戦妵鍕箻閸楃偟浠肩紒鐐劤椤兘寮婚悢鍏煎€锋い鎺嶈兌娴煎洤鈹戦埄鍐ㄧ祷闁绘鎹囧濠氭晸閻樿尙锛滃┑鐘绘涧濞层劑濡存繝鍐瘈闁冲皝鍋撻柛鏇ㄥ幐婵洦绻涢敐鍛悙闁挎洦浜獮濠囨偐濞茬粯鏅㈡繝銏f硾濡绂嶉悙顒傜瘈闂傚牊渚楅崕鎰版煟閹捐泛鏋涢柡灞炬礉缁犳稒绻濋崘鈺冨絽闂備浇顕х换鎴︽偂閿熺姴钃熼柣鏃傚帶缁€鍕煏閸繃顥滄い蹇ユ嫹
濠电姷鏁告慨鐑藉极閸涘﹥鍙忛柣鎴濐潟閳ь剙鍊圭粋鎺斺偓锝庝簽閸旓箑顪冮妶鍡楀潑闁稿鎹囬弻娑㈡偄闁垮浠撮梺绯曟杹閸嬫挸顪冮妶鍡楃瑨閻庢艾鍢茶灋闁瑰濮风壕濂稿级閸碍娅呭ù鐘崇矋閵囧嫰骞橀崘鍙夊€悗鍨緲鐎氼噣鍩€椤掑﹦绉靛ù婊勭箞椤㈡ɑ銈i崘鈺冨幗闁硅壈鎻徊楣冨吹閳ь剟鏌f惔銏犲毈闁告ḿ鏅划鈺呮偄閻撳骸鑰垮┑鐐叉閸旀洘鎯旀繝鍐闁瑰鍋為悡锝囩磼閼搁潧鍝虹€殿喖顭烽弫鎰緞婵犲孩缍傞梻浣哥枃濡椼劑鎳楅懜闈涱嚤闁割偁鍎查埛鎴︽煟閻斿憡绶叉繛鍫氭櫊閺岀喖宕欓妶鍡楊伓
濠电姷鏁告慨鐑藉极閸涘﹥鍙忛柣鎴濐潟閳ь剙鍊圭粋鎺斺偓锝庝簽閸旓箑顪冮妶鍡楀潑闁稿鎹囬弻娑㈡偄闁垮浠撮梺绯曟杹閸嬫挸顪冮妶鍡楃瑨閻庢艾鍢茶灋闁瑰濮风壕濂稿级閸碍娅呭ù鐘崇矋閵囧嫰骞橀崘鍙夊€悗鍨緲鐎氼厾鎹㈠┑瀣闂傚牊绋掗崐顖炴⒒閸屾艾鈧嘲霉閸ヮ剦鏁嬮柡宥庡幖閸ㄥ倿骞栧ǎ顒€濡肩紒鈧€n偁浜滈柟鐐殔鐎氬懎顫濋懜纰樻嫽婵炶揪绲块悺鏃堝吹濞嗘挻鈷戦悽顖e枤閸掓澘鐣濋敐鍫濆姷妞わ附鐓¢幗鍫曟倷鐎靛摜顔曢梺鐟扮摠閻熴儵鎮橀鍫熺厱閻庯綆浜跺Ο鈧梺鍝勮閸旀垿骞冮妶澶婄<婵炴垶锕╂导锟�
闂傚倸鍊搁崐鎼佸磹閻戣姤鍤勯柤鍝ユ暩娴犳氨绱撻崒娆掑厡缂侇噮鍨跺畷婵嗏枎閹捐泛绁︽繝鐢靛Т閸燁垶宕曢悢鍏肩厪濠电偛鐏濋崝銈夋煕閺冩挾鐣辨い顏勫暣婵″爼宕卞Δ鍐噯闂備胶枪閿曘倝骞楀⿰鍫濇瀬妞ゆ洍鍋撶€规洖銈稿鎾倷濞堝灝鏅i梻浣筋嚙鐎涒晝绮欓幒鎴犲箵闁秆勵殕閸庢鏌熼悜妯荤厸闁稿鎸鹃幉鎾礋椤掑偆妲扮紓鍌欐祰椤曆囨偋閹炬剚鍤曟い鎰剁畱缁犺崵绱撴担鑲℃垵鈻嶉姀銈嗏拺閻犳亽鍔屽▍鎰版煙閸戙倖瀚�
闂傚倸鍊搁崐鎼佸磹閻戣姤鍤勯柤鍝ユ暩娴犳氨绱撻崒娆掑厡缂侇噮鍨跺畷婵嗏枎閹捐泛绁︽繝鐢靛Т閸燁垶宕曢悢鍏肩厪濠电偛鐏濋崝銈夋煕閺冩挾鐣辨い顏勫暣婵″爼宕卞Δ鈧ḿ鎴︽⒑缁嬫鍎愰柟鐟版喘瀵鈽夊鍡樺兊濡炪倖甯掗ˇ顖炲礈瀹曞洨纾藉〒姘搐閺嬫盯鏌ㄩ弴銊ら偗鐎殿噮鍋婂畷鎺楁倷閼碱剦妲堕柣鐔哥矊缁绘﹢骞冮敓鐘茬缂備焦岣块崢浠嬫煙閸忓吋鍎楅柛銊ュ暱閻f繂鈽夐姀锛勫幐闂佸憡渚楅崰姘辩不閻愮儤鐓欐い鏍ㄤ亢鐎氫即鏌嶇拠鏌ュ弰妤犵偛顑夐幃鈺冨枈婢跺矂妫峰┑鐘垫暩閸嬬偤骞愭繝姘殞濡わ絽鍟弲婵嬫煏婢诡垪鍋撻柛瀣尭椤繈鎮欓鈧锟�
闂傚倸鍊搁崐鎼佸磹瀹勬噴褰掑炊椤掆偓杩濋梺閫炲苯澧撮柡灞剧〒閳ь剨缍嗛崑鍛焊娴煎瓨鐓忛柛銉戝喚浼冮悗娈垮枙缁瑦淇婂宀婃Х濠碘剝褰冮悧鎾愁潖閻戞ê顕辨繛鍡楃箳濡诧綁姊洪棃鈺冪Ф缂傚秳绀侀锝囨嫚濞村顫嶅┑鈽嗗灦閺€閬嶅棘閳ь剟姊绘担鍝ョШ闁稿锕ョ粋宥夋倷閻戞ê娈戦梺鎯х箰濠€杈╁閽樺褰掓晲婢跺閿繝寰枫倕袚濞e洤锕幃娆撴嚋濞堟寧顥夋俊鐐€栧ú鈺冪礊娴i€涚箚闁归棿绀侀悡娑樷攽閻樻彃鏆炴繛鍛墬缁绘繈鎮介棃娑楃捕濠碘槅鍋呴悷鈺佺暦瑜版帗鍋ㄩ柣銏㈡暩閻e爼姊虹捄銊ユ灁濠殿喚鏁婚崺娑㈠箣閿旂晫鍘卞┑鐘绘涧濡顢旈埡鍛厓鐟滄粓宕滃▎鎾偓锕傛倻閻e苯绁︽繝鐢靛Т濞层倗绮绘繝姘厾闁告稑饪撮崯蹇旂箾閼测晛鏋涙慨濠呮閹瑰嫰濡搁妷锔惧綒闂備胶鎳撻崵鏍箯閿燂拷
闂傚倸鍊搁崐鎼佸磹妞嬪海鐭嗗〒姘e亾妤犵偞鐗犻、鏇㈡晝閳ь剟鎮块鈧弻锝呂旈埀顒勬偋婵犲洤鐭楅煫鍥ㄦ惄濞撳鎮楅敐搴濈凹闁圭櫢绲跨槐鎺楀焵椤掍胶绡€闁稿被鍊楅崬鐢告⒑閸忓吋鍊愭繛浣冲嫭鍙忛柛顐犲劜閻撶喖鏌熼崹顔碱伀缂佸鍣i弻鐔碱敊濞嗙偓缍堝┑鐐碘拡娴滎亪鐛箛鎾舵殕濠电姴鍊搁煢婵犵數濮烽弫鎼佸磻濞戙垺鍎戝ù鍏兼綑绾惧綊鏌¢崶銉ョ仾缂佺姵甯″缁樻媴閻熼偊鍤嬬紓浣筋嚙閸婃瓕鐏嬪┑鐐叉閸ㄥ綊鎯岄崱娑欑厓鐟滄粓宕滈悢濂夋綎婵炲樊浜滃婵嗏攽閻愬顣查柛銊ユ健楠炲啳顦归柟顔规櫊閹崇娀顢楁担璇″晭闂傚倷娴囬~澶嬬珶閸℃ɑ娅犳俊銈呮噹閻ら箖鏌熼梻瀵稿妽闁绘挶鍎甸弻锝夊即閻愭祴鍋撻崷顓涘亾濮樼偓瀚�
婵犵數濮烽弫鍛婃叏閻戝鈧倿鎸婃竟鈺嬬秮瀹曘劑寮堕幋婵堚偓顓烆渻閵堝懐绠伴柣妤€妫涚划鍫ュ醇閻旇櫣鐦堥梻鍌氱墛缁嬫帡鏁嶅澶嬬厽闁哄倹瀵чˉ鐐睬庨崶褝韬い銏$☉椤繈顢楁担绯曞亾椤栫偞鐓熼幖娣灪閻ㄦ垹绱掗鍛仸濠碉紕鏁诲畷鐔碱敍濮橀硸鍟嬮梺璇查叄濞佳囧箺濠婂牊鍋╂繛宸簼閻撶喖骞栧ǎ顒€鐏柛鐔哥叀閺岀喖宕欓妶鍡楊伓
濠电姷鏁告慨鐑藉极閸涘﹥鍙忛柣鎴濐潟閳ь剙鍊圭粋鎺斺偓锝庝簽閸旓箑顪冮妶鍡楀潑闁稿鎹囬弻娑㈡偄闁垮浠撮梺绯曟杹閸嬫挸顪冮妶鍡楃瑨閻庢艾鍢茶灋闁瑰濮风壕濂稿级閸碍娅呭ù鐘崇矋閵囧嫰骞橀悙钘変划閻庤娲栭悥鍏间繆閹间礁唯妞ゆ棁宕电粚鎸庣節绾板纾块柛瀣灴瀹曟劙寮介鐐殿唶闂佺厧顫曢崐鏍х暦閺屻儲鐓曢柟鏉垮悁缁ㄦ挳鏌涚€n偅灏い顐g箞閹煎綊顢曢妶鍛敪婵犵數鍎戠徊钘壝洪妶澶嬫櫇妞ゅ繐鐗勯埀顑跨閳藉螣濠婂嫭顥堥柛鈹惧亾濡炪倖甯婇悞锕€鈻嶉悩缁樼厱婵炲棗娴氬Σ铏圭磼閳锯偓閸嬫挻淇婇悙顏勨偓銈夊磻閹烘绐楁俊銈呭暊閸嬫挸顫濋悙顒€顏�
婵犵數濮烽弫鍛婃叏閻戝鈧倿鎸婃竟鈺嬬秮瀹曘劑寮堕幋婵堚偓顓烆渻閵堝懐绠伴柣妤€妫涚划鍫ュ醇閻旇櫣鐦堥梻鍌氱墛缁嬫帡鏁嶅澶嬬厽闁哄倹瀵чˉ鐐烘煙娓氬灝濡兼い顏勫暟閹风娀鐓鐑嗘闂備浇顕у锕傦綖婢跺⊕娲晝閸屾氨顦梺缁樻⒒椤戞洟鍩€椤戣法顦﹂柍璇查叄楠炴ê鐣烽崶鑸敌濋梻鍌欒兌缁垶骞愰崫銉ㄥС闁割偅娲栫壕濠氭煙閸撗呭笡闁稿鍔戦弻娑樷槈濮楀牆濮涢梺鍛娚戦幃鍌氼潖濞差亜绀堥柟缁樺笂缁ㄨ偐绱撴担绛嬪殭閻庢凹鍓熼幃娲敇閻愨晜鏂€闂佺粯蓱閸撴岸宕箛娑欑厱闁挎繂楠搁悘锔筋殽閻愯尙绠婚柡浣规崌閺佹捇鏁撻敓锟�
婵犵數濮烽弫鍛婃叏閻戝鈧倿鎸婃竟鈺嬬秮瀹曘劑寮堕幋婵堚偓顓烆渻閵堝懐绠伴柣妤€妫涚划鍫ュ醇閻旇櫣鐦堥梻鍌氱墛缁嬫帡鏁嶅澶嬬厽闁哄倹瀵чˉ鐐烘煙娓氬灝濡兼い顏勫暟閹风娀鐓鐑嗘闂傚倸鍊风粈渚€骞栭锔藉殣妞ゆ牜鍋涚粻鐘虫叏濡炶浜鹃悗瑙勬礃濡炰粙宕洪埀顒併亜閹哄秹妾峰ù婊勭矒閺岀喖宕崟顒夋婵炲瓨绮撶粻鏍ь潖閾忓厜鍋撻崷顓烆€岄柛銈嗙懇濮婅櫣鏁鍓滈梺缁樹緱閸o綁鐛€n喗鏅濋柍褜鍓涚划璇测槈閵忊檧鎷婚梺鍓插亞閸犳捇鍩婇弴鐔翠簻闁哄倹瀵чˉ銏℃叏婵犲嫮甯涢柟宄版嚇瀹曘劍绻濋崘銊ュ闂備浇顕х€涒晝鍠婂澶婄畺闁稿瞼鍋熷畵渚€鐓崶銊р姇闁哄懏鎮傞弻銊╂偆閸屾稑顏�
婵犵數濮烽弫鍛婃叏閻戝鈧倿鎸婃竟鈺嬬秮瀹曘劑寮堕幋婵堚偓顓烆渻閵堝懐绠伴柣妤€妫涚划鍫ュ醇閻旇櫣鐦堥梻鍌氱墛缁嬫帡鏁嶅澶嬬厽闁哄倹瀵чˉ鐐烘煙娓氬灝濡兼い顏勫暟閹风娀鐓鐑嗘闂備浇顕у锕傦綖婢跺⊕娲煛閸愵亞顦繛鎾村焹閸嬫捇鏌e☉鍗炴灓闁逞屽墾缂嶅棙绂嶉弽顓炵哗濞寸姴顑嗛悡鏇熴亜閹伴潧浜滃ù婊勵殘缁辨帡骞夌€n偄顏�
濠电姷鏁告慨鐑藉极閸涘﹥鍙忛柣鎴濐潟閳ь剙鍊圭粋鎺斺偓锝庝簽閸旓箑顪冮妶鍡楀潑闁稿鎹囬弻娑㈡偄闁垮浠撮梺绯曟杹閸嬫挸顪冮妶鍡楃瑨閻庢艾鍢茶灋闁瑰濮风壕濂稿级閸碍娅呭ù鐘崇矋閵囧嫰骞橀崘鍙夊€悗鍨緲鐎氼厾鎹㈠┑瀣妞ゆ挾鍋涚粻鎴︽⒒閸屾艾鈧兘鎳楅崼鏇炵疇闁瑰墽绮崑銈夋煏婵炑冨鎼村﹪姊洪崨濠冨闁搞劌銈稿顐﹀磼閻愭潙鈧灚绻涢幋鐑嗕痪闁兼祴鏅滃畷鏌ユ煕閳╁叇婊勭濠婂牊鐓涚€广儱娴烽崢娑欑箾閸喐鐓ユい顓″劵椤﹁尙鈧鍠栨晶搴ㄥ箲閵忕姭鏀介悗锝呭缁嬪繐顪冮妶鍡橆梿婵☆偄瀚伴、鏃堟晸閿燂拷
闂傚倸鍊搁崐宄懊归崶顒夋晪鐟滃酣銆冮妷鈺佺濞达絿枪閸嬪秴鈹戦悩璇у伐闁绘妫涚划鍫ュ醇閻旇櫣鐦堥梻鍌氱墛娓氭宕曢幇鐗堢厱閻庯綆浜堕崕鏃堟煛瀹€鈧崰鏍嵁閸℃稒鍋嬮柛顐亝椤ュ姊绘担瑙勩仧闁告ü绮欓妴鍐川閺夋垹鍘撮梺纭呮彧闂勫嫰宕戦幇鐗堢厵缂備焦锚缁楁碍绻涢崼顐㈠籍婵﹦鍎ょ缓浠嬪川婵犲啴鏁紓鍌氬€哥粔鎾晝椤忓嫷鍤曞┑鐘宠壘鍥存繝銏f硾椤戝懎鈻撻悢鍏尖拺闂傚牊渚楀Σ鍫曟煕鎼淬劋鎲鹃柨婵堝仜椤撳吋寰勭€Q勫缂傚倸鍊烽悞锕€鐜婚幐搴g彾闁告洦鍘剧壕鐣屸偓骞垮劚鐎氼噣藝閿曞倹鐓熼柨婵嗘噹濡插鏌嶇拠鏌ュ弰妤犵偞岣块埀顒佺⊕钃辨い蹇曞枛濮婄粯鎷呴懞銉с€婇梺闈╃秶缁犳捇鐛箛娑欐櫢闁跨噦鎷�
UB闂傚倸鍊搁崐鎼佸磹妞嬪海鐭嗗ù锝夋交閼板潡寮堕崼姘珔闁搞劍绻冮妵鍕冀椤愵澀绮剁紓浣插亾濠㈣泛顑勭换鍡涙煏閸繃鍣洪柛锝囨櫕閳ь剝顫夐幐椋庢濮樿泛钃熸繛鎴欏灩鍞梺闈涚箚閸撴繈鎮甸弴銏$厽閹兼番鍨婚。鑼偓鍏夊亾闁归棿绀佺粻鏍ㄤ繆閵堝倸浜鹃梺瀹犳椤︻垶鍩㈠澶嬫優妞ゆ劑鍨绘导宀勬⒑閹稿海绠橀柛瀣ㄥ€濆顐﹀箻缂佹ɑ娅㈤梺璺ㄥ櫐閹凤拷
闂傚倸鍊搁崐鎼佸磹瀹勬噴褰掑炊閵娧呭骄闂佸壊鍋嗛崰鍡樼閸垻纾奸悗锝庡亽閸庛儲绻涢崗鑲╁ⅹ闁宠鍨块幃鈺佺暦閸ヨ埖娈归梻浣虹帛鐢紕绮婚弽顓炵畺婵°倕鎳忛崑銊╂煟閵忋垹浠柍褜鍓欓敃顏堝蓟濞戞埃鍋撻敐搴′簼鐎规洖鐭傞弻锝呪槈閸楃偞鐝濋悗瑙勬礀缂嶅﹪銆佸▎鎾崇煑闁靛/鍕剁础濠电姷鏁告慨鐑藉极閸涘﹥鍙忔い鎾卞灩绾惧鏌熼崜褏甯涢柣鎾卞劦閺岋綁寮撮悙娴嬪亾閸︻厸鍋撳鐐
闂傚倸鍊搁崐宄懊归崶顒夋晪鐟滃酣銆冮妷鈺佷紶闁靛/鍌滅憹闁诲骸绠嶉崕閬嵥囬鐐插瀭闁稿瞼鍋為悡鏇熺節闂堟稒顥滄い蹇曟暬閺屻倝寮堕幐搴′淮闂佸搫鏈惄顖涙叏閳ь剟鏌曡箛鏇炐fい鏃撴嫹
闂傚倸鍊搁崐鎼佸磹妞嬪海鐭嗗〒姘e亾妤犵偛顦甸崹楣冨箛娴e湱绋佺紓鍌氬€烽悞锕佹懌闂佸憡鐟ョ换鎰扳€旈崘顏佸亾閿濆簼绨奸柟鐧哥悼缁辨帡鍩€椤掍胶绡€闁稿被鍊楅崬鐢告煟閻樿崵绱版繛鍜冪秮閹﹢鏌嗗鍡欏幈濠德板€撻懗鍫曘€傞懠顒傜<缂備焦岣垮ú瀵糕偓瑙勬礀瀹曨剝鐏冮梺閫炲苯澧存い銏☆殜婵偓闁靛牆妫涢崢閬嶆⒑缂佹ê濮囨俊顖氾工鍗遍柛锔诲幘绾捐偐绱撴担璐細闁靛棙甯炵槐鎺撴綇閵娧勫櫚闂佽鍠掗弲鐘茬暦椤愶箑绀嬫い鎰╁灱閸橆偊姊婚崒姘偓鐑芥嚄閼哥數浠氬┑掳鍊楁慨瀵告崲濮椻偓閻涱喛绠涘☉娆愭闂佽法鍣﹂幏锟�
缂傚倸鍊搁崐鎼佸磹閹间礁纾归柟闂寸绾惧綊鏌i幋锝呅撻柛濠傛健閺屻劑寮撮悙娴嬪亾瑜版帒纾婚柨鐔哄У閻撱儵鏌¢崶鈺佷粶闁逞屽墯閹倸鐣疯ぐ鎺戠<婵炴垶姘ㄩ惁鍫熺節閻㈤潧孝闁稿﹥鎮傞、鏃堫敃閿濆啩绨婚梺鍐叉惈閹冲繘寮柆宥嗙厪闁搞儜鍐句純濡ょ姷鍋炵敮鎺楊敇婵傜ǹ鐐婇柤鍛婃櫕濠婂懐纾介柛灞剧懅閸斿秶鎲搁弶鍨殭闁挎洏鍨介弻鍡楊吋閸涱垰濮︽俊鐐€栫敮鎺楀磹閸涘﹦顩锋い鏍仦閻撴洖鈹戦悩鎻掓殶缂佺姵岣跨槐鎺撴綇閵婏箑纰嶅銈庡亝缁诲啴鏁嶉幇顑芥斀闁搞儯鍔嶉悵锕傛⒒閸屾瑦绁版繛澶嬫礋瀹曟娊鏁冮崒姘鳖唵闂佽法鍣﹂幏锟�
©2017 www.mb5u.com婵犵數濮烽弫鍛婃叏閻戝鈧倿鎸婃竟鈺嬬秮瀹曘劑寮堕幋婵堚偓顓烆渻閵堝懐绠伴柣妤€妫涚划鍫ュ醇閻旇櫣鐦堥梻鍌氱墛缁嬫帡鏁嶅澶嬬厽闁哄倹瀵чˉ鐐烘煙娓氬灝濡兼い顏勫暟閹风娀鐓鐑嗘闂備浇顕х€涒晠顢欓弽顓為棷妞ゆ洍鍋撶€规洘濞婇弫鎰緞婵犲嫮鏆梻浣稿暱閹碱偊骞婃惔锝囦笉闁汇垹鎲¢悡娆撴煟閹寸倖鎴犱焊椤撱垺鐓熼柨鏂垮悑鐎氾拷
闂傚倸鍊搁崐鎼佸磹瀹勬噴褰掑炊椤掆偓杩濋梺閫炲苯澧撮柡灞剧〒閳ь剨缍嗛崑鍛暦瀹€鍕厸鐎光偓閳ь剟宕伴弽顓溾偓浣糕槈濡嘲鐗氶梺鍛婂姉閸嬫挸袙婢跺绻嗛柣鎰典簻閳ь剚鍨垮畷鏇熺節濮橆剛顔嗛梺璺ㄥ櫐閹凤拷&闂傚倸鍊搁崐鎼佸磹妞嬪海鐭嗗〒姘e亾妤犵偛顦甸弫宥夊礋椤掍焦顔囬梻浣告贡閸庛倝宕甸敃鈧埥澶愬閻樼數娼夐梻浣稿閸嬪棝宕抽妷銉庢盯宕ㄧ€涙ǚ鎷洪柣鐘充航閸斿苯鈻嶉幇鐗堢厵闁告垯鍊栫€氾拷
QQ缂傚倸鍊搁崐鎼佸磹閹间礁纾瑰瀣捣閻棗銆掑锝呬壕閻庢鍠氶弫濠氥€佸Δ鍛劦妞ゆ帒瀚ч埀顒佹瀹曟﹢顢欓挊澶屾濠电姰鍨归崢婊堝疾濠婂牊鍎庢い鏍仜閺嬩線鏌熼崜褏甯涢柡鍛倐閺屻劑鎮ら崒娑橆伓闂傚倸鍊搁崐鎼佸磹妞嬪海鐭嗗〒姘e亾妤犵偞鐗犻、鏇㈡晝閳ь剛澹曢崷顓犵=濞达綀鍋傞幋婵冩瀺闁绘ê鍘栫换鍡涙煏閸繂鈧憡绂嶉幆褜娓婚柕鍫濋娴滄繄绱掔拠鑼ⅵ闁靛棔绀侀埢搴ㄥ箣濠靛洨鈧娊姊洪崨濠庢畼闁稿鍋ら、娆撳磼濞戞绠氶梺缁樺姦娴滄粓鍩€椤掍胶澧い顐㈢箲缁绘繂顫濋鈧崑宥夋偡濠婂啰绠绘鐐差樀楠炴﹢顢欓懞銉︻仧闂備浇娉曢崳锕傚箯閿燂拷闂傚倸鍊搁崐鎼佸磹閻戣姤鍤勯柛顐f礀閸屻劎鎲搁弮鍫濈畺婵☆垯璀﹀ḿ鈺傘亜閹烘垵鈧懓鈻撻幆褉鏀芥い鏂款潟娴犳粓鏌涚€n偅灏伴柕鍥у婵偓闁挎稑瀚崳浼存倵鐟欏嫭绀€鐎规洦鍓濋悘鍐╃節閻㈤潧孝闁稿﹤缍婇、娆撳磼濞戞绠氶梺缁樺姦娴滄粓鍩€椤掍胶澧い顐㈢箲缁绘繂顫濋鈧崑宥夋偡濠婂啰绠绘鐐差樀楠炴﹢顢欓懞銉︻仧闂備浇娉曢崳锕傚箯閿燂拷濠电姷鏁告慨鐑藉极閹间礁纾绘繛鎴欏灪閸嬨倝鏌曟繛褍鍟悘濠囨椤愩垺澶勯柟灏栨櫅闇夐柡宥庡幗閻撳繐鈹戦悙鑼虎闁告挸澧介幉鍛婃償閳藉棗娈梺鍛婃处閸嬪棝寮抽崱娑欑厓鐟滄粓宕滃☉娆戠彾闁哄洨鍠嗛崑鍛存煕閹般劍娅囬柛娆忔濮婅櫣绱掑Ο鑽ゎ槬闂佺ǹ锕ゅ﹢閬嶅焵椤掍胶鍟查柟鍑ゆ嫹闂傚倸鍊峰ù鍥敋瑜忛埀顒佺▓閺呯娀銆佸▎鎾冲唨妞ゆ挾鍋熼悰銉╂⒑閸︻厼鍔嬫い銊ユ噽婢规洘绻濆顓犲幍闂佺顫夐崝鏇㈠触瑜版帗鐓曟繛鍡樺姈瀹曞矂鏌$仦鍓ф创濠碉紕鍏橀獮瀣攽閸℃ɑ顔夋繝鐢靛仜閻楀棙鏅舵惔锝嗩潟闁规崘顕х壕鍏兼叏濡顣抽柡瀣焸濮婃椽鎮烽弶鎸庮唨闂佺懓鍤栭幏锟�闂傚倸鍊搁崐鎼佸磹瀹勬噴褰掑炊椤掍礁鍓銈嗗姧缁犳垹绮堢€n偁浜滈柟鎵虫櫅閻忊晝鎮鈧缁樻媴缁涘娈┑顔斤公缁犳捇鏁愰悙鏉戠窞閻庯綆鍓涢鏇熺節閻㈤潧孝婵炲眰鍔岄悾鍨瑹閳ь剟寮婚垾宕囨殼妞ゆ梻鎳撴禍楣冩⒑閸撴彃浜藉ù婊庝邯瀵鈽夐姀鐘靛姶闂佸憡鍔曢妵妯兼闂堟稈鏀介柍钘夋娴滈箖鏌熼崙銈嗗濠电姷鏁告慨鐑藉极閸涘﹥鍙忓ù鍏兼綑閸ㄥ倿鏌i幘宕囧哺闁哄鐗楃换娑㈠箣閻愬娈ら梺娲诲幗閹瑰洭寮婚悢铏圭<闁靛繒濮甸悘鍫ユ⒑閸濆嫬顏ラ柛搴″级缁岃鲸绻濋崶顬囨煕濞戝崬骞楁繛鍫濆缁辨帗銈i崘顏嗘毇缂備胶濮甸悧鐘差嚕婵犳碍鍋勯悶娑掆偓鍏呭濠电偞鍨堕悷锛勭磽濮樿京纾奸柣妯虹-婢ц京绱掓潏銊ョ闁归濮鹃ˇ鎶芥倵濮樼偓瀚�闂傚倸鍊搁崐鎼佸磹妞嬪海鐭嗗〒姘e亾妤犵偞鐗犻、鏇㈠煕濮橆厽銇濋柡浣稿暣閸┾偓妞ゆ巻鍋撻柣婊冾煼瀹曞綊顢欑憴鍕偓濠氭⒑鐟欏嫬鍔ょ紒澶嬫綑鐓ゆい鎾卞灩閺嬩線鏌熼崜褏甯涢柡鍛倐閺屻劑鎮ら崒娑橆伓...