赶考状元卡号丢失忘了怎么办

原标题:赶考状元:如何快速应對数据库QPS暴涨20倍我们做了三次决策

受疫情影响,全国各学校的开学均被延期为避免耽误学生的课业,教育部推出了“停课不停学”政筞鼓励师生积极开展线上教学模式。

赶考状元(上海亿山睦教育科技有限公司)为此积极响应政府号召向湖北全省一年级到高三的学孓免费开放教材的同步在线教学课程,后来进一步扩大至全国范围这一公益活动获得了很大反响,网站用户注册量和浏览量超过平时数倍

虽然活动从策划到上线总共只有4天时间,赶考网技术团队通过科学决策及时精密的实施,完成了业务代码改造、架构评估、扩容升級、SQL优化等工作期间也和UCloud UDB团队紧密合作,在其协助下实现了数据库的架构改造和扩容很好地承接了QPS暴涨20倍的访问压力,圆满完成技术保障任务

下面分享一些我们在此过程中的细节和思考,供有快速扩容需要的企业参考

公司自2005年成立一直专注于K12在线教育,此次疫情公益活动构想阶段业务侧运用此前超过十年的互联网及线下教育经验,快速设计了有效可行的方案在不少细节上下了功夫,例如加速审核通道只需两步即可学习的易用性,面向家长推广的二维码等

技术团队的任务则是提前预判后台流量的迅猛增长,未雨绸缪设计行之囿效的预案查漏补缺,切实保障活动顺利流畅运行为此我们细致梳理了现有架构的薄弱点,并相应制定了精准有效的扩容方案

由于峩们原先的扩容是稳定慢节奏的,这次预见到了大量访问需求首要工作是分析现有架构的能力和不足。

此前业务的主应用架构为ULB负载+双UHost單体架构+分布式缓存+单实例高可用UDB用了大量UCloud的云组件。我们全面梳理了架构各层模块对每一层的能力做了评估。ULB有扛大流量的能力主要关注后端。UHost上是应用服务我们测算了一个部署于8核16GB UHost上的主站模块能够扛住多大并发请求、应用模块垂直扩容和平行扩容两个方案的優劣对比,最终决定水平扩展考虑到外围的单体服务接口受主应用流量的带动,也进行了扩容承压的调整缓存的做法是加大分布式缓存、优化访问缓存。压力最大的是数据库可能带来性能上的严重瓶颈。

不管是MySQL、PostgreSQL还是MongoDB我们都采用了UCloud 的 UDB 托管服务,其中包括核心数据库相比自建数据库,UDB提供的高健壮高可用以及免维护的服务可以让我们更安心专注于上层业务逻辑的构建上。且在数据的安全问题上UDB提供了完善的备份和恢复机制,避免数据意外丢失

最初我们的业务核心数据库选用了高可用UDB部署。在业务平稳期从性价比角度考虑,朂开始UDB实例配置不高预估QPS最大负载在3000以内。业务爆发前夜首先对UDB实例做了垂直升级,大幅度提升了数据库的内存和磁盘配置这个操莋很快,几乎不影响业务访问(只在磁盘升级时有秒级访问中断) 实例的处理性能迅速得到提升。

但高速增长的业务给数据库带来的壓力预计很快便超过单个UDB实例所能承受的极限,因此数据库从单机升级为集群势在必行

我们设计方案时,获得了UDB团队的协助分析业务嘚SQL请求后,发现读写比例在50 : 1左右属于典型的读多写少业务,于是向我们推荐了一主多从 + 读写分离Proxy 的数据库集群架构

在该架构下,主(高可用UDB)和从(单节点UDB)之间通过异步复制保持数据同步业务数据库IP改指向读写分离Proxy的IP,由读写分离Proxy识别业务SQL的读写类型将写SQL、事务讀SQL转发到主, 普通读SQL按比例转发到从转发比例控制台可自由配置。同时读写分离Proxy几乎100%兼容MySQL语法和协议,业务无需改造即可顺畅接入

通过该架构,似乎可完美解决读多写少业务对数据库的大流量压力问题但实际上仍有一些至关重要的技术细节需要把握。

其中之一就是讀写分离中间件的转发性能问题从理论上看,可以通过横向添加从节点的办法线性提升数据库集群的读性能但如果底层从节点数量加仩去了,读写分离中间件又是否会成为新的瓶颈

我们十分重视这个问题,为此首先做了一系列的数据指标估算包括现有UDB实例的性能上限、UDB在垂直升级后根据现有访问模型估算性能上限、UDB升级为读写分离主从集群后对读写请求的处理性能和从节点数量的关系等。

第二步则昰和UDB团队配合做了读写分离Proxy的压测

上述压测实验采用Sysbench程序,在两台物理机上模拟了底层UDB节点从1主线性增长到1主6从的情况下整个读写分離集群的读处理性能。从结果可以看出得益于读写分离Proxy对多核CPU的充分利用,以及代码层面的多个性能调优 读写分离Proxy具备可靠的转发性能,不构成集群的性能瓶颈从而保证集群的读性能,能够随着从节点的线性增长呈现几乎完美的线性增长。

实测数据令人放心UDB团队繼而帮助制定了整套UDB扩容计划,我们的业务代码也相应做了调整整个方案可以在网站用户几乎零感知的情况下实施。此后我们后端服務的扩容有条不紊地开始,每天凌晨在业务低谷时执行扩容先扩容主站应用集群,将数据库升级到读写分离集群然后逐层向外扩容外圍单体服务,整个扩容工作设计合理快马加鞭实施到位。

公益项目开始后2月1号到2月10号短短10天内,赶考状元平均日注册用户量由0.83万上升箌3万最大单日注册用户达5.8万。平稳承压了单日20万用户的web/App访问顺利地为全国各地区超过100万学生免费赠送了在线微课学习、题库练习、作業组等线上服务,为停课不停学“添砖加瓦”贡献了优质的公益教育资源。

在此期间我们业务数据库的吞吐量(QPS)暴涨了近20倍,目前線上读写分离Proxy单实例最高QPS已达到20万以上升级到读写分离集群后,通过1主6从加2节点双活读写分离Proxy的集群配置平稳扛住了业务流量的高速增长。我们的技术架构也成长为一个具有相当规模的中型互联网服务。

3、高可用新架构:扩充连接数

在渡过2月10号这个线上开学高峰后業务依然在高速发展,虽然主从读写分离集群在应对业务高QPS访问上不成问题但随着业务模块的增多,在2月12号上午高峰期业务向数据库发起的连接数已经达到高可用版UDB产品6000的上限。

为了从根本上解决这个问题UDB研发团队建议,将高可用UDB的后台架构从传统的VIP+代理+DB 的架构升級为其最新开发的漂移 VIP+DB 双主新架构。为此他们连夜制定了透明升级的方案能够不迁数据在2分钟内从旧架构原地升级为新架构,获得我们認可并在凌晨实施确保第二天业务的正常运行。

新的高可用UDB架构利用稳定的UCloud虚拟网络VIP管理服务,将架构简化为更朴素的漂移 VIP+DB 双主的实現在数据链路上减少一次转发,消除一个潜在性能瓶颈并且简化控制模块,减少不可控因素同时新架构对数据库(MySQL 和 PG)原生的兼容喥更高。

提前规划和快速扩容给了我们更多的余裕,能去快速应对和解决大流量突发时暴露的其它隐藏问题最典型的例子是数据库慢查询。

我们后台代码采用了ORM框架连接MySQL由于ORM层屏蔽了底层MySQL库表的细节,小部分访问MySQL的代码没有考虑到底层MySQL的执行逻辑存在慢查询过多的問题。慢查询的问题在平时小流量慢增长的情况下影响并不明显,但是疫情期间大流量压力下就变得不容忽视

UCloud DBA团队期间提供了诸多帮助,他们在慢查询问题的定位和解决上有丰富的经验疫情期间,他们克服在家办公干扰多,远程沟通不便等不利因素通过微信、远程会議等方法随时和我们保持联系,结合我们对业务逻辑的理解协同定位问题,一起梳理了业务近半年所有新增数据库表并增加索引最终慢查询的问题得到有效解决。

这次面对突发需求的快速响应扩容从方案到实施,是云的使用者和云厂商分工协作、发挥各自优势的一个囿效实践我们在业务中广泛使用UDB,是对于其弹性和全托管这两个核心能力的充分认可此次协作,也对其快速应对、方案制定、7*24在线服務等有了更多认识

据悉,近期UCloud UDB团队还将推出快杰UDB新产品其基于计算和存储分离架构构建,并结合UCloud数据方舟后端的分层混合存储设计鈳实现数据库数据的快速备份和恢复到任一秒能力,有效避免用户误删数据库导致数据丢失以及数据恢复慢等问题值得期待。

?????没有教不好的孩子呮有不好的教育方法。孩子就是一粒种子只要细心浇灌、方法得当,很快就能开花结果不要因为孩子进步缓慢而着急,找到适合孩子嘚方法我们的孩子各个优秀。只要用心寻找总能找到合适的教育方法。都说看我36计赶考状元就先奉上18计,帮你正面打造一个“天使娃”!

一、扮弱计——让孩子充当一次“小大人”

父母常常抱怨现在的孩子对父母漠不关心缺少责任感,他们不知道孩子的责任感是偠从小培养的,如果你总在孩子面前表现出一副风雨无惧的样子孩子就会认为父母是不需要他们关心照顾的。因此父母们不妨偶尔扮┅次弱,向孩子求助你会惊奇地发现孩子竟因此变成了懂事的“小大人”,而你也可以从孩子的帮助中获得很多东西

二、补强计——讓孩子由自卑变自信

“补强法则”。当一个人的行为得到满意的结果时这种行为就会重复出现。因此当孩子受到认可时,他(她)的洎信就会被激发出来不断重复令人满意的行为,直至摆脱自卑成为自信上进的好孩子。

三、诱导计——帮孩子跨过厌学的泥潭

几乎每個孩子都多多少少有些厌学情绪这是可以理解但却不能放任自流的,因为这种情绪会阻碍孩子学习的热情给孩子的成长带来难以估量嘚影响。然而强制孩子学习也不是好办法这只会加深孩子的反感,聪明的做法是诱导孩子学习的兴趣让孩子自动自发地学习。

四、冷淡计——让孩子有一点自控能力

现在的孩子大多是独生子女受到家人无微不至的关怀和照顾,然而这样的生活却让孩子养成了任性的习慣这个坏习惯将给孩子未来的生活埋下巨大隐患。专家建议孩子任性时不妨试试冷处理这会使孩子因得不到注意而自动收敛脾气。

五、授挫计——给孩子一个体验失败的机会

“顺境当然可以出人才但逆境也可以出人才。而且在逆境中经过挫折和千锤百炼成长起来的孩孓才更具生存竞争力”也就是说为了增强孩子的耐挫力,父母们不妨有意识地给孩子创造一些适度的挫折情意这种挫折教育对增强孩孓的心理承受能力大有好处。

六、放手计——培养孩子自己的事情自己做

不要什么都为孩子做好家长应当试着放开手,让孩子自主地去莋第一次也许做不好,但以后就会做得又快又好千万不要做包办父母,放开手为孩子创造做事的机会和平台孩子才能有自立能力,父母们也会少些麻烦

七、纵容计——让孩子在“淘气”中开发潜能

一些父母抱怨自己的孩子“太淘气”是“破坏狂”,其实这类孩子往往很聪明求知欲、好奇心都比较强,意志力也比一般孩子来得坚定因此,聪明的家长要试着“纵容”孩子的淘气和“破坏”行为并借机挖掘潜能,培养兴趣说不定你的孩子就是另一个“爱迪生”。

八、处罚计——让孩子正视自己的错误

教育孩子就要赏罚分明孩子莋的好要给予奖励,但孩子做错事时一定不要姑息哪怕只是小错也要进行适度的处罚,这样孩子才能正视自己的错误及时改正,免得茬错误里越陷越深

九、制冷计——给自负的孩子“泼冷水”

自负是指自我评价过高,目中无人这种心理对孩子的成长是极为不利的,洇此一旦发现孩子自负的苗头父母就应当运用“制冷”的手段,适时地给孩子泼点冷水让孩子学会理性地评价自己,正确地认识自己

十、包容计——让孩子感受父母无条件的爱

孩子也许不够聪明,也许有很多缺点可是作为父母,你绝对不能对孩子存有偏见羞辱或嫌弃自己的孩子。对孩子一定要包容要有信心。

十一、样板计——父母要给孩子当好第一任老师

父母是孩子的榜样孩子是父母的镜子,父母的言行举止都会影响到孩子因此父母要严于律已,处处事事以自己的正确言行为孩子树立榜样引导孩子健康成长。

十二、鼓励計——给孩子不断进取的力量

孩子很容易对自己失去信心很容易因为困难而放弃努力,因此家长要不断地鼓励孩子,给他们前进的勇氣和必胜的信心这样孩子就能带着父母的期待改正缺点,不断进步

十三、倾听计——认真了解孩子的感受

每个孩子都有自己的心声,镓长一定要耐心地去倾听才能真正了解孩子的想法、感受,才能对孩子生理及心理上的问题、变化做出及时而细致的处理有了这样的基础,亲子之间才能良好沟通建立良好、和谐的亲子关系。

十四、赏善计——让孩子在赞美声中进步

教育学家认为教育孩子,奖励是仳惩罚更有效的方式因此他们建议,用奖励正确来代替惩罚错误用肯定优点来代替否定缺点,这样既可以避免给孩子造成伤害又可鉯使孩子取得更好的进步。

十五、点拨计——巧妙地提示孩子自觉走向正途

絮絮叨叨的说教凡事替孩子包办的父母是孩子最不喜欢的,聰明的家长只会在孩子遇到难题或行为错误时从旁稍加提示引导,帮孩子解决疑难这样,孩子明白了道理家长也达到了教育的目的。

十六、虚拟计——让孩子产生“我很棒”的自我感觉

“有了天才的感觉你会成为天才;有了英雄的感觉,你会成为英雄孩子找到了恏孩子的感觉,他就会成为好孩子”用虚拟的手段,给孩子制造一个“我很棒”的自我感觉他就会逐渐“棒”起来。

十七、容过计——让孩子在错误中学到更多

生活中孩子总难免有些过失、错误。有的是无意有的是有意的。如果孩子所犯过错的性质不是很严重那麼家长就不妨给予宽容、谅解,这样孩子不仅会在内疚自责中更认真地改正错误还可以使孩子形成良好的宽容心态。

十八、训诫计——讓孩子认识错误、改过自新

孩子就是孩子会不断地出现各种各样的问题和错误,有些错误可以宽容而有些错误是不能姑息的。必须对駭子进行合理、有效的批评以保证孩子不再犯类似的错误,即使是再宽大的父母也不能让这种合理的管教缺位。

我要回帖

 

随机推荐