千万级架构大揭秘

千万级架构大揭秘

ID:33572608

大小:714.50 KB

页数:4页

时间:2019-02-27

千万级架构大揭秘_第1页
千万级架构大揭秘_第2页
千万级架构大揭秘_第3页
千万级架构大揭秘_第4页
资源描述:

《千万级架构大揭秘》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、投身IT十余载,带过项目N多个,市面上可见有自己心血的产品也有那么几款(骄傲呀)。最近有些朋友咨询移动互联网后台架构的一些东东,聊到他们的苦恼,感觉大伙还在摸索中成长,总觉得应该为朋友们做点什么。我们深知移动互联网是一个聚人气的行业,因此好的后台架构是产品成功的核心保障(这里暂且不谈用户体验),之前那种认为随便搭建一下server的思想必须摒弃掉,除非只是玩个demo(这段我可是有被关黑房子的血泪史)。结合近几年做运营级的产品的一些积累及业界主流思想,写点东西拿出来share一下,但愿能给摸索中的

2、朋友们一些小小的帮助。目前主流运营级的后台架构基本遵循LNMMP的技术路线,之所以不选windows,这个估计咱得去问问盖茨了。就通常架构而言我们需要考虑的问题主要集中在并发量、负载均衡、平滑扩容、日志及数据存储几大方面,作为移动互联网产品的特点可能还多了个长链接(消息推送)和LBS两个方面。好了,言归正传:(1)负载均衡技术负载均衡将是大型平台解决高负荷访问和大并发请求采用的终极解决办法。目前主流做法有DNS技术实现负载均衡、分布式CDN和硬/软件四层交换技术。结合性价比而言采用软四层交换技术比

3、较合理,即采用linux环境下的LVS(LinuxVirtualServer)来实现的负载均衡,即把大量的请求动态的分配到不同的处理服务器上,同时LVS利用心跳机制对这些处理服务器进行了动态监控。当然Nginx针对这块也有不错的表现。(2)HTTP优化技术http请求大多采用Apache,但是apache是属于进程级的应用服务,因此在大并发的请求下,由于进程的开销大,从而导致apache服务器压力陡增。为此建议大家可采用Nginx+PHP-FPM+APC替代Apache+mod_php方式,以便优

4、化http并发请求处理能力。同时对于一些图片资源丰富的web网站也可采用静态html和图片分离技术有效提高http的并发能力。当然采用tomcat+servlet技术有更大的处理性能优势,在于servlet服务可以和其他服务之间的交互采用长连接,能更好的发挥高并发处理的吞吐量。当单台服务器性能不足以满足业务需求,可以快速进行scaleout的部署。(3)缓存技术缓存技术的应用主要是为了解决高并发给DB或硬盘带来的负载瓶颈问题。如客户端的API访问通常都要携带验证信息(通常为session),如果每

5、个请求到来后,服务器都去查询DB验证请求的合法性,这样一旦用户请求出现高并发,极可能导致DB服务器瘫痪或严重影响其它业务的响应时间。为此可在其后台大量采用memcache或者Redis技术,将其需要频繁操作DB的数据分解存放到内存中。这样就有效地降低了对DB的访问而带来的IO瓶颈。(4)数据库优化技术4/4数据库通常都是平台的核心,也是大多平台的瓶颈所在,为此针对数据库方面的优化对于平台而言至关重要。这块通常做法除了根据业务的特点进行了水平、垂直的拆分,同时还引入了Mysql自身的内存表、分区表及

6、集群技术等。目前经历的几个项目中,我们最多就拆分过6种角色的DB。(5)分布式文件存储技术分布式文件存储技术主要是为了解决运营级平台高并发、大容量的文件读取问题的。这块很多开源的项目不错,如FastDFS、GFS等。其中fastdfs它是一个轻量级分布式文件系统,对文件进行管理,功能包括:文件存储、文件同步、文件访问(文件上传、文件下载)等,解决了大容量存储和负载均衡的问题。特别适合以文件为载体的在线服务,如相册网站、视频网站等等。(6)基于LBS的定位技术为了实现类似于时下微信附近的人等功能,建

7、议采用当前火爆的Nosql技术,这种非关系型数据库相比较传统mysql等关系型数据库而言,在处理这种查找在某个地理位置内的搜索时,性能至少提高几十倍。比较著名的有MangoDB等。综上所述,后台架构上除了上面提到的技术外,当然还有一些技术会根据业务的特点而被采用,如Hiphop、Redis等。(6)长链接技术目前在Android方面为了实现消息的推送功能,大都需要客户端和服务器建立长链接,原本google提供的C2DM(GCM)可以实现,但是由于天朝政策缘故,国内用户不可用,所以针对长链接主流的做

8、法有XMPP、MQTT和第三方长链接提供商(如极光、个推、百度云推等),但作为自身构建的运营级平台,调用第三方的显然不是明智之举。在XMPP和MQTT之间个人建议选择后者,其主要原因是XMPP虽然成熟,但是其耗电、费流量等。而MQTT二进制的协议极大节约了流量,同时省电方面也胜XMPP一筹。当然开源的东西自己还得略作优化,这样其性能可能会有你意想不到的惊喜!4/4图1:云视互动平台业务流分布式架构图(7)任务(消息)队列技术任务或消息队列在百万级平台中的引入主要是为了解决同/异步操

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。