城市直播房产教育博客汽车
投稿投诉
汽车报价
买车新车
博客专栏
专题精品
教育留学
高考读书
房产家居
彩票视频
直播黑猫
投资微博
城市上海
政务旅游

我们的应用系统是如何支撑千万级别用户的

12月20日 多上心投稿
  背景
  我现在负责的项目是一个合同型项目,也就是甲乙方关系。目前我们系统累计用户数约2500万,日活跃200万。而今年客户的KPI指标是用户总数翻一翻。而刚好这几天我需要给客户汇报一份关于如何支撑数千万级别用户的系统报告。借此机会,也顺带多写一份分享心得。
  前序
  从项目性质可以看出,我们公司就是一个IT服务企业,既然是服务,那么客户的满意就是我们前进的动力,注意是客户而不是用户。客户提出这个汇报要求,无非要的就是我们能否协助他们完成KPI的信心。再进一步说,就是我们开发的系统能否很好地支撑他们达到业务和用户的KPI目标。首先我会想到的一点是,今年将会是一个怎样的数千万用户级别系统,也就是说这个数千万用户系统的背后需要支撑什么样的业务目标。例如数千万用户的秒杀和数千万用户的查询还是有天大的区别。按照我对该行业客户的了解,我是无法从中得知太多有利用价值的商业信息。所以他们实际要的就是一个能快速响应、随机应变且能支撑数千万用户的系统。能快速响应意味着我们要随时能跟上他们紧急的需求新增或紧急的需求变更;随机应变也就意味着他们想做什么就做什么且不能拒绝;数千万用户就是一个代表并发的量词,他不会告诉你这数千万用户什么时候一个个来或什么时候会一起来。客户对系统的要求也不多,也就稳定、灵活、可扩展和敏捷开发四个要求。下面就来说说我将会通过什么样的手段来满足客户的欲望。
  主题
  从宏观角度看,一个系统并非只是一个硬件软件的集合那么简单,它还涉及到其它方方面面的因素,这些因素间相互紧密关联,比如公关做不好或者业务方向偏轨,系统再好,也无补于事。从微观角度看,一个系统并非只是需求、开发、测试的事情,我们还要考虑运维、实施等项目阶段成员的感受。一个项目的最大难度可能不是开发,或许可能是运维。一个项目的复杂度会随着时间的迁移或者骨干人员的变动而指数增加。从这些方面去考虑,这个系统必须保持足够的简单,才能降低项目的各种成本。当然,越简单越复杂,最终依赖的还是一个简单的团队。
  简单的框架
  从上图得知,该系统是一个面向服务体系结构(SOA)系统,也是简单的首先。该系统主张的是把所有服务组件化,最大的组件粒度是平台,例如运营平台、外部服务支撑平台、内部服务支撑平台等。而最小的组件粒度是服务。组件化也是系统灵活性和可扩展性的必要因素。平台垂直分为入口层和业务层,下面分别介绍一下。
  入口层
  入口层的主要职责就是充当业务系统门卫,检查业务请求的合法性,各检查组件之间松耦合,没有任何关联,随时能删能减,不会影响整个系统的稳定性。
  业务层
  顾名思义,业务层的主要职责负责对业务的逻辑处理,并响应用户业务请求。该业务层主要包含参数验证、逻辑处理、响应请求三大步骤。一个业务实体代表一种服务,各业务实体之间同样是松耦合,没有任何关联,缺少任何一种业务都不会导致系统的崩溃。
  辅助组件工具包
  这个工具包包含各种通用辅助组件,主要职责是辅助入口层和逻辑层各组件的执行,例如数据库操作组件、Redis操作组件等。
  该系统的主要特点有:
  1、控制业务粒度复杂度
  没有不能简单的功能,只有乳臭未干的设计者。一个业务也相当于一个组件。一个过于复杂的组件无论从运维还是性能来说都是噩梦的开始。如果每一个组件都有它的自管能力,后续的运维工作就会大大的降低。
  2、控制线程栈的大小
  一个业务线程栈过大也就意味着线程执行时间不会太短,对于一个互联网应用,每一毫秒都是系统体验的关键所在。
  3、控制系统透明度
  所谓的透明度也就是线程栈的透明度,就是每个程序员都必须非常清晰的理解自己的线程栈将会如何运行,在什么地方会存在异常风险,如何处理等操作手段。也因为这样,整个系统没有使用任何其它的业务逻辑开源框架,大大地降低了开发人员的学习成本和压力,也大大地提高了系统的可控性。可以让程序员接触更多基础的东西。包括数据库的操作也是需要开发人员自己亲手去写业务的SQL语句,并保证SQL语句的性能消耗。当然,这也需要开发人员对数据库有一定的了解程度。
  4、控制业务验证
  对任何业务的请求都必须保持不可信任的态度,这也是业务实例的第一步就是做请求参数验证的必要性。服务是对外的,谁也不敢确保没有恶意的攻击,这个一个系统必须考虑的边界因素。否则系统毫无安全性可言。
  简单的部署
  部署同样遵守组件化、控制业务复杂粒度等原则。确保每个垂直的部署都是一个独立的业务集群,每个业务集群必须控制好业务的复杂度,好比如一个细胞成长到一定程度会自动分裂出两个细胞,否则胀爆是唯一的后果。从以上架构图中左边的两个箭头和系统特性得知,该系统可横向平台分解部署或同一平台中业务分解部署,大概的部署效果如下图所示:
  如果资源和业务允许,各垂直集群硬件的独立性也是必要的,尽可能确保各部署集群之间的松耦合。对于实施人员来说,每个集群业务的部署,只需要从项目中提出属于该集群的组件增量部署即可。
  简单的监控
  监控程序同样是系统的重要组成部分,也意味着监控程序必须遵守以上系统原则去实现,并监控程序也是需要维护的。
  总结
  不难看出,整个系统都是体现组件化原则。每个层次的结构都可以通过水平横向组件化扩展来增加系统的支撑能力,这就是系统原则一致性的表现。随着时间的推移,业务复杂度不会因此而增加,只会横向地扩展更多的服务支撑。从系统架构特性也可以看出,对硬件资源的消耗也是非常的低,毕竟线程栈的大小也放在哪儿了,这一点也得到了客户的认可。此架构已经在线上支撑着每天200多万用户的使用,整一年下来故障率为0。
  这个系统的学习成本也是非常低的,因为是都基础知识。虽然简单,但对人员的综合能力是有一定的要求。例如开发人员需要对整条访问线程的各个部分都要有所了解,例如网络、中间件、语言、缓存、数据库等知识,否则马不停蹄的救火和调优是未来可预知的事情。因为一个习惯了简单开发的程序员开发不了简单的简单的程序。其实对于整个系统项目组干系人来说,理解系统架构是首要条件。否则,如果没有整体观念的理解,如何做好部分。
投诉 评论 转载

员工激励机制员工激励的话怎么说面对未来竞争激烈且快速变迁的经营环境,传统的薪酬设计理念将不足以满足需求,如何强化薪酬的激励功能,已成为薪酬设计的焦点。薪酬不应该仅仅是企业为获得劳务所支付给员工的成本,更应该……想做抖音网红怎么找团队个人应该如何组建随着抖音视频越来越火,抖音企业号的崛起,也牵动了抖音代经营行当的快捷停滞,那么企业如何找到适宜子什么的抖音代经营团队呢?昆明新传媒小编将为大家继续简练的综合,指望能为大家分忧解……儿童被褥如何消毒儿童床上用品需要消毒吗?儿童被褥是和儿童娇嫩的肌肤亲密接触的生活用品,如果不注意卫生,很可能导致儿童因细菌感染而生病或者皮肤过敏,所以应该定期对儿童被褥进行消毒。以下是本站小编……改善孕妇睡眠质量的小妙招怀孕身孕的女人肯定特别容易疲惫,睡眠的质量问题尤其重要。不光关系到孕妈本身的精神状态还跟宝宝的发育成长也息息相关哦!一起来看看小编整理的改善孕妇睡眠质量的小妙招吧!1、睡……肌研海洋面膜怎么样满足肌肤各种需求肌研海洋面膜怎么样肌研海洋面膜针对不同肌肤的需要,分为五个系列,荟萃海洋精华和透明质酸,为肌肤灌注深层水润呵护,满足各种肌肤需求。肌研海洋面膜怎么样:保湿肌研……机场过安检可以带电脑吗准备回家发展,用了几年的电脑不值得扔掉,准备带回家。那么机场过安检可以带电脑吗?下面和本站了解下吧。不管笔记本或者台式电脑可以过机场安检,不在禁止携带物品清单内。机场安检……出圈的羊胎素,无辜的斯琴高娃女演员斯琴高娃,艺龄近43年,饰演过无数经典银幕形象。《康熙王朝》里的孝庄太后,威严霸气;《日落紫禁城》里的慈禧太后,高贵优雅;《大宅门》里的二奶奶白文氏,深谋大义;《骆……我们的应用系统是如何支撑千万级别用户的背景我现在负责的项目是一个合同型项目,也就是甲乙方关系。目前我们系统累计用户数约2500万,日活跃200万。而今年客户的KPI指标是用户总数翻一翻。而刚好这几天我需要给客……茭白锈病如何防治茭白锈病有什么症状?茭白锈病发生原因是什么?茭白锈病用什么农药可以防治?以下中国三农网就作简单介绍,供网友们参考。一、茭白锈病症状及危害茭白锈病又叫茭白黄疽病,会造成减产……双氧水属于甲类危险品吗双氧水学名过氧化氢。属于危险化学品及有毒有害物质,以前也曾作为漂白剂、杀菌剂、防腐剂广泛使用在食品中。那么双氧水属于甲类危险品吗?储存双氧水需要注意什么呢?下面本站就带大家来了……大道至简全光路口化道为简近年来,乘着大数据的东风,智能交通在不断发展和完善。智能交通注重将人工智能、计算机技术、信息技术等先进科学技术与交通领域进行结合,使人、车、道产生更紧密的联系,提高效率,保障安……艾顿3514布克28分太阳力克森林狼北京时间3月24日,NBA常规赛继续进行,明尼苏达森林狼主场迎战菲尼克斯太阳,卡尔安东尼唐斯和德文布克达成了生涯11000分里程碑,太阳在末节104103之后打出143攻击波确……
道光帝时期曾发生一起盗窃案国库七成白银被偷光你不知道的小技巧秒让你的女人性爱高潮端午节将至,推荐5道家常小凉菜,好吃又下饭,清爽解油腻有哲理的快手个性签名励志人心惶惶造句用人心惶惶造句大全2022年,男人要修掉这几样东西狗狗平时不说话但有重要事情会通过这个秋季如何养胃夏季哪些妙招让你远离细菌露半张脸惊艳,露全脸有缺陷被称娱乐圈,半脸美人的明星都有谁?关于水属性角色元素附着初步整理新游预告2022年第一个月即将上线的新手游,玄中记等等

友情链接:中准网聚热点快百科快传网快生活快软网快好知文好找江西南阳嘉兴昆明铜陵滨州广东西昌常德梅州兰州阳江运城金华广西萍乡大理重庆诸暨泉州安庆南充武汉辽宁