免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 16886 | 回复: 12

如何实现稳定的千万级PV移动应用架构 [复制链接]

论坛徽章:
4
ChinaUnix专家徽章
日期:2015-07-27 10:05:26IT运维版块每日发帖之星
日期:2015-09-01 06:20:00IT运维版块每日发帖之星
日期:2016-07-29 06:20:00PHP
日期:2016-10-25 16:08:01
发表于 2015-07-23 22:56 |显示全部楼层
获奖名单已公布:http://bbs.chinaunix.net/thread-4186526-1-1.html     

      架构这个词就和云一样,越来越多的人去说,但是其实这个本身一直就存在你身边,只不过大家用新的归纳方法进行了整理,出现的一个热词。那么就生产中实例:如何实现稳定的千万级日PV的移动应用架构?
      第一步:要保证日均千万级PV的移动应用访问正常,我们需要有一个好的应用框架,代码不能写的都是坑,至少代码本身质量要过关,我们这里说的是抛却代码质量这个因素,首先要模块化的拆分业务应用,不能所有的业务用一套系统,放1台服务器,这个肯定抗不了千万日PV,模块化后,各业务之间开放api进行互访传递数据,便于我们对各个模块进行改进。

      第二步:当我们将业务进行了模块化拆分后,就要根据业务量对现有的各个模块进行量化评估和改进,改造的方向主要有下面几点:
      1.对各个模块进行集群化部署,根据业务量分配集群规模。
      2.消除整个结构化中的单点问题,不能有任何业务有单点故障,保障业务模块的高可用。
      3.核心模块进行纵向的分层化处理,增加模块的处理能力和可扩展性/独立性。
      4.异步化处理,很多实时性不高的业务进行异步化处理,减少整个系统的压力。
      5.内存化处理,对交互处理频繁的数据,可以放到内存数据库中处理,异步进行数据的落地(使用内存数据库的集群和分布式机制保障数据的安全和高可用)。
      6.精简目前的架构纵向层次,避免超过3层,越简单越高效,越易于管理。

      第三步:关系数据库进行读写分离,或者集群化处理,目前大多数改进的方案最终的核心都在数据库上,大多方式:
      1.使用内存数据库做数据库前端,所有对数据的更/删/改/查操作都在内存数据库中执行,最终异步将数据落地到关系数据库中,此方式能大大减少关系数据库的操作。
      2.使用双主多从的方式部署数据库集群,oracle的自己有一套商业的解决方案(比如:rac),这里就不说了
      3.在程序层做数据库的读写分离或集群读取(这个要求程序员能力),或者使用数据库代理软件(路由软件),大公司自己写,开源的也有不少,但是多多少少都有一些小毛病,需要代码配套修改,很多用法是不支持的。
      4.分库/分区/分表 这个主要是减轻单数据库服务器的压力,增加数据库处理能力。
      5.慢查询日志分析,优化sql
     
      第四步:监控,这个是保证千万级PV移动应用稳定运行的关键,主要分为下面几类:
      1.服务器层基础监控:CPU/MEM/DISK/IO
      2.应用服务状态:端口/服务进程
      3.服务质量:连接数/响应速度/接口数据返回值
      4.数据分析:定期的日志分析 PV/UV/QP

      做到以上几点,你是否就真正的做到稳定的千万级日PV的移动应用架构呢?通常我们所说的高并发都是想到淘宝双11,12306抢票,小米抢手机,人家一般都是上亿PV,瞬时并发几百K,但是目前业界这样的公司屈指可数,更多的公司面临的大并发基本也就是日PV千万级,并发连接10K-30K。本期话题以移动应用架构设计为主题,诚邀各位大神,一起聊聊怎么搭建稳定的千万级PV架构?届时10月22日-24日在北京新云南皇冠假日酒店盛大召开的SACC2015大会的分会场11,将与大家更深入的探讨关于移动应用架构设计方面的专题,敬请期待您的参与。



讨论话题

1、千万级PV架构您觉得如何构建,比如:云主机下,您认为千万级的PV会遇到哪些瓶颈,如何解决?

2、从十万级到千万级PV架构您觉得该如何演化?该从哪些方面入手?应该注意哪些方面的细节?

3、千万级PV架构中web服务器如何选型,比如:nginx、apache、lighttpd,都适用哪些场景?负载均衡服务器该如何选型?比如:haproxy、lvs都适合哪些场景,实际中会遇到哪些坑?

4、您认为千万级PV架构中如何保障后期的扩展?您能介绍下所了解的实际中的千万级PV架构吗?

5、目前大多数规模在千万级创业公司中,很多语言混杂开发,在实际管理中,如何保障多语言混杂开发环境下的业务稳定性和可管理性?




讨论时间:2015年7月24日--2015年8月24日



活动奖励:活动结束后,我们将选取3名讨论精彩的童鞋,可获赠SACC2015大会纪念品一件。
小米自拍神器.png
晴雨伞红色1.jpg
晴雨伞黑色1.jpg

墨绿色.jpg 军绿色1.jpg
黑色.jpg 酒红色.jpg





      一年一度的中国系统架构师大会震撼来袭了!SACC2015将于10月22日-24日在北京新云南皇冠假日酒店盛大召开,届时大会将云集来自五湖四海的2500名IT同胞们。
      从2009年到现在,我们伴随着中国系统架构师大会走过了七个春秋,从最早的500人规模逐年升级到现在的2500人规模,这些年我们目睹了整个IT架构的变迁史,也见证了中国IT圈内一波又一波的架构师成长之路。
      当天真遇到现实,会发生哪些趣闻轶事?当架构师遇到互联网+,又会擦出怎样的火花?2015中国系统架构师大会以“互联网+重塑IT架构”为主题,站在互联网+的风口上,诚邀百余名演讲嘉宾,打造一场架构师腾飞的技术盛会。
      欢迎有兴趣的小伙伴们踊跃报名:http://sacc.it168.com/

关注大会官方微信,微信转发本条微信图文信息,晒截图即可赢得大会徽章一套: 152240eon7w7nnpf795pop.png
1621397wzblkpbkpq1r3pr.jpg



论坛徽章:
22
CU大牛徽章
日期:2013-09-18 15:22:06白羊座
日期:2014-04-14 22:56:32午马
日期:2014-05-16 17:18:08巳蛇
日期:2014-05-30 20:53:19寅虎
日期:2014-06-03 10:53:34未羊
日期:2014-08-12 22:15:31神斗士
日期:2015-11-20 17:26:2515-16赛季CBA联赛之浙江
日期:2016-03-15 18:27:4215-16赛季CBA联赛之同曦
日期:2016-03-22 09:21:0115-16赛季CBA联赛之北控
日期:2017-03-26 21:47:12技术图书徽章
日期:2014-04-03 16:47:26摩羯座
日期:2014-03-25 23:51:36
发表于 2015-07-24 21:50 |显示全部楼层
1、千万级PV架构您觉得如何构建,比如:云主机下,您认为千万级的PV会遇到哪些瓶颈,如何解决?
外部cdn,lvs,nginx,无状态程序,数据库缓存,数据库读写分离,混合数据库(mongo+rdbms)。
云主机最差部分就是硬盘IO了,如果哪个部分读写太慢只能通过加机器的方式来出来.其他的cpu和内存在一般的使用中还是可以的。

2、从十万级到千万级PV架构您觉得该如何演化?该从哪些方面入手?应该注意哪些方面的细节?
堆机器和买带宽,单机到多机。

3、千万级PV架构中web服务器如何选型,比如:nginx、apache、lighttpd,都适用哪些场景?负载均衡服务器该如何选型?比如:haproxy、lvs都适合哪些场景,实际中会遇到哪些坑?
nginx并发比较高,放lvs后面;apache的模块多,看应用需要,放nginx后;haproxy顶多数千连接就再上不去了,但是多开几个;

4、您认为千万级PV架构中如何保障后期的扩展?您能介绍下所了解的实际中的千万级PV架构吗?
机器多了,服务多了,每个环节的监控要做好,从基础监控到应用监控(cpu,内存,硬盘io,连接数,每个服务的接口的返回时间和访问次数,每个进程的cpu/内存,日志记录,数据库等各项参数)。

5、目前大多数规模在千万级创业公司中,很多语言混杂开发,在实际管理中,如何保障多语言混杂开发环境下的业务稳定性和可管理性?
目前公司在用docker隔离,效果很好

论坛徽章:
10
CU大牛徽章
日期:2013-09-18 15:20:48程序设计版块每日发帖之星
日期:2016-07-21 06:20:00IT运维版块每日发帖之星
日期:2015-07-30 09:40:01技术图书徽章
日期:2014-10-14 16:00:43天蝎座
日期:2013-09-27 17:41:29CU大牛徽章
日期:2013-09-18 15:21:17CU大牛徽章
日期:2013-09-18 15:21:12CU大牛徽章
日期:2013-09-18 15:21:06CU大牛徽章
日期:2013-09-18 15:20:58每日论坛发贴之星
日期:2016-07-21 06:20:00
发表于 2015-07-27 22:01 |显示全部楼层
1、千万级PV架构您觉得如何构建,比如:云主机下,您认为千万级的PV会遇到哪些瓶颈,如何解决?
      超出想象

2、从十万级到千万级PV架构您觉得该如何演化?该从哪些方面入手?应该注意哪些方面的细节?
      逐步细化,应用分级,基于地理位置的,可变网络,学习google嘛。

3、千万级PV架构中web服务器如何选型,比如:nginx、apache、lighttpd,都适用哪些场景?负载均衡服务器该如何选型?比如:haproxy、lvs都适合哪些场景,实际中会遇到哪些坑?
      似乎 nginx 在前面什么反向代理的更多。

4、您认为千万级PV架构中如何保障后期的扩展?您能介绍下所了解的实际中的千万级PV架构吗?
      光说没练过。,

5、目前大多数规模在千万级创业公司中,很多语言混杂开发,在实际管理中,如何保障多语言混杂开发环境下的业务稳定性和可管理性?
      同一化,减少多种语言的混杂。

论坛徽章:
5
IT运维版块每日发帖之星
日期:2015-08-25 06:20:002017金鸡报晓
日期:2017-01-10 15:13:292017金鸡报晓
日期:2017-02-08 10:33:2115-16赛季CBA联赛之新疆
日期:2018-04-23 13:55:2315-16赛季CBA联赛之辽宁
日期:2018-07-23 08:59:12
发表于 2015-07-30 11:54 |显示全部楼层
1、千万级PV架构您觉得如何构建,比如:云主机下,您认为千万级的PV会遇到哪些瓶颈,如何解决?
公司采用的都是自建机房,瓶颈一般都是机器性能与程序好坏决定的,
如果是程序问题,就尽可能叫开发去优化,如若不然就只能是添加机器从单台变多台,多台变集群。
如果是存储问题,就做主从和读写分离,量大了再分库分表。
2、从十万级到千万级PV架构您觉得该如何演化?该从哪些方面入手?应该注意哪些方面的细节?
也是跟第一个问题一样,单台变多台,多台变集群,并且配置和开发必须预留后期的弹性和良好的扩展性。

3、千万级PV架构中web服务器如何选型,比如:nginx、apache、lighttpd,都适用哪些场景?负载均衡服务器该如何选型?比如:haproxy、lvs都适合哪些场景,实际中会遇到哪些坑?
一般选型就是 nginx+keepalive+lvs+redis(mencache)+php(tomcat)+mysql
nginx+keepalive做负载均衡,redis与mencache做集群,mysql做读写分离以及集群即可。
实际中,有可能是机房突然崩溃,或者某个集群挂了大部分的机器,或者数据库集群失效。
可以采用异地容灾,利用dnspod快速切换,在其他机房做好相应的容灾架构以及数据库的跨机房主从配置即可。


4、您认为千万级PV架构中如何保障后期的扩展?您能介绍下所了解的实际中的千万级PV架构吗?
架构只要做高可用集群,都可以有很灵活的扩展性。

5、目前大多数规模在千万级创业公司中,很多语言混杂开发,在实际管理中,如何保障多语言混杂开发环境下的业务稳定性和可管理性?
最好用虚拟化分割各种语言给不通机器,相互间不影响,可以使用vm或者docker。

论坛徽章:
32
CU大牛徽章
日期:2013-05-20 10:45:13每日论坛发贴之星
日期:2015-09-07 06:20:00每日论坛发贴之星
日期:2015-09-07 06:20:00数据库技术版块每日发帖之星
日期:2015-12-13 06:20:0015-16赛季CBA联赛之江苏
日期:2016-03-03 11:56:13IT运维版块每日发帖之星
日期:2016-03-06 06:20:00fulanqi
日期:2016-06-17 17:54:25IT运维版块每日发帖之星
日期:2016-07-23 06:20:0015-16赛季CBA联赛之佛山
日期:2016-08-11 18:06:41JAVA
日期:2016-10-25 16:09:072017金鸡报晓
日期:2017-01-10 15:13:292017金鸡报晓
日期:2017-02-08 10:33:21
发表于 2015-07-24 13:13 |显示全部楼层
日均千万级PV,这个并发要求并不高。

论坛徽章:
18
处女座
日期:2014-11-13 15:52:322015亚冠之胡齐斯坦钢铁
日期:2015-08-14 16:09:082015亚冠之北京国安
日期:2015-06-02 18:41:152015亚冠之广州恒大
日期:2015-06-02 18:41:15NBA常规赛纪念章
日期:2015-05-04 22:32:032015年亚洲杯之中国
日期:2015-04-01 16:38:392015小元宵徽章
日期:2015-03-06 15:58:182015年亚洲杯之阿联酋
日期:2015-03-06 09:33:432015年辞旧岁徽章
日期:2015-03-04 13:32:472015年迎新春徽章
日期:2015-03-04 10:01:44拜羊年徽章
日期:2015-03-03 16:15:43洛杉矶快船
日期:2015-03-02 16:05:34
发表于 2015-07-24 13:17 |显示全部楼层
支持活动

论坛徽章:
4
ChinaUnix专家徽章
日期:2015-07-27 10:05:26IT运维版块每日发帖之星
日期:2015-09-01 06:20:00IT运维版块每日发帖之星
日期:2016-07-29 06:20:00PHP
日期:2016-10-25 16:08:01
发表于 2015-07-24 13:52 |显示全部楼层
回复 2# jieforest


    访问量不算高,但是毕竟比较普遍,想弄的很好也是不容易,希望大家都谈下自己的想法,show下自己使用的架构,好的架构是很轻易从千万级升级到亿级的

论坛徽章:
15
射手座
日期:2014-11-29 19:22:4915-16赛季CBA联赛之青岛
日期:2017-11-17 13:20:09黑曼巴
日期:2017-07-13 19:13:4715-16赛季CBA联赛之四川
日期:2017-02-07 21:08:572015年亚冠纪念徽章
日期:2015-11-06 12:31:58每日论坛发贴之星
日期:2015-08-04 06:20:00程序设计版块每日发帖之星
日期:2015-08-04 06:20:00程序设计版块每日发帖之星
日期:2015-07-12 22:20:002015亚冠之浦和红钻
日期:2015-07-08 10:10:132015亚冠之大阪钢巴
日期:2015-06-29 11:21:122015亚冠之广州恒大
日期:2015-05-22 21:55:412015年亚洲杯之伊朗
日期:2015-04-10 16:28:25
发表于 2015-07-25 16:26 来自手机 |显示全部楼层
什么是pv?什么是。。。

论坛徽章:
1
2015年迎新春徽章
日期:2015-03-04 09:54:45
发表于 2015-07-27 11:34 |显示全部楼层
回复 6# yulihua49

俺也有同样的疑问?什么是pv?以前对这些简写没细究,pv应该是page view,也就是单页的浏览量,日均千万PV?每天1000万的页面打开浏览量? 既然有pv的说法,那有没有pvt的说法,pvt 是page view time,每天花在每页的页面浏览时间。


   

论坛徽章:
4
ChinaUnix专家徽章
日期:2015-07-27 10:05:26IT运维版块每日发帖之星
日期:2015-09-01 06:20:00IT运维版块每日发帖之星
日期:2016-07-29 06:20:00PHP
日期:2016-10-25 16:08:01
发表于 2015-07-27 12:22 |显示全部楼层
PV(访问量):即Page View, 即页面浏览量或点击量,用户每次刷新即被计算一次。
UV(独立访客):即Unique Visitor,访问您网站的一台电脑客户端为一个访客。00:00-24:00内相同的客户端只被计算一次。
IP(独立IP):即Internet Protocol,指独立IP数。00:00-24:00内相同IP地址之被计算一次。
不过这些缩写就是个说法,实际中只要知道缩写所指的内容就可以了。

论坛徽章:
15
射手座
日期:2014-11-29 19:22:4915-16赛季CBA联赛之青岛
日期:2017-11-17 13:20:09黑曼巴
日期:2017-07-13 19:13:4715-16赛季CBA联赛之四川
日期:2017-02-07 21:08:572015年亚冠纪念徽章
日期:2015-11-06 12:31:58每日论坛发贴之星
日期:2015-08-04 06:20:00程序设计版块每日发帖之星
日期:2015-08-04 06:20:00程序设计版块每日发帖之星
日期:2015-07-12 22:20:002015亚冠之浦和红钻
日期:2015-07-08 10:10:132015亚冠之大阪钢巴
日期:2015-06-29 11:21:122015亚冠之广州恒大
日期:2015-05-22 21:55:412015年亚洲杯之伊朗
日期:2015-04-10 16:28:25
发表于 2015-07-27 15:42 来自手机 |显示全部楼层
本帖最后由 yulihua49 于 2015-07-27 15:53 编辑

好的。那么,最重要的机制就是代理网关了,在WEB组前端设置一组代理服务器,如squid之类。它提供一组静态网页缓存,可大大减少主WEB服务器的压力。我们实验过,对于相当动态的实际应用,只有1/4的请求真正需要到后台。如果是广告页签,几乎100%被缓存。反向代理。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP