天津JAVA培训,谁在为你的双十一买单?十年牧码记
双十一就在周日了,这是大家一年一度的盛大狂欢,而背后却是无数工程师们的战场,十年来用一行行代码搭建起不断稳定、壮大的快乐王国。
让我们跟随一线技术人员的经历回顾这风雨十年。
2009:暴增的流量措手不及
第YI年双十一,要在光棍节搞个活动。0点时发现流量暴增,服务器挂了。完全的意料之外,服务器容量、网络带宽容量、系统保护都是没有的,让大家措手不及。
2010年:吸取经验,技术改进
前线的工程师回忆第二年的情景:“我们有了心理准备,但是平时流量的十几倍的情况还是出乎意料。基于前一年的经验做了很多工作,分布式系统的防雪崩、核心系统的自治,这些技术改进让系统好了很多,虽然0点高峰还是出现大量的购mai失败,但是服务器没有大面积宕机,流量下降后能够继续良好地服务。”
2011年:乱中出错,心有余悸
各团队提早几个月就开始准备,可是10日晚上23点,有发现设置的优惠价格写错了,3折的商品写成了0.3折。经过一次修改以后又回滚,然后重新推送,又出现系统Bug。11日凌晨1点,定位到错误代码是回滚程序的Bug,决定发布新的系统。早上5点,系统Bug修复。
2012年:一年磨砺,仍旧艰辛
这一年做了大量稳定性的相关工作。可是那个0点,流量来得比以往更猛一些。
0点的时候,系统的网卡被打满了,事先准备的几乎所有降级方案效果并不明显。
支付宝的健康检查系统问题。apache 应用,连接数只有1K 多的性能瓶颈,在双十一的流量之下雪崩了。我们快速启动了应急预案后解决。
2013年:越挫越勇,终见成效
2013年,集合了各个BU的力量我们创造了一套全新的压测系统:全链路压测,参加的技术同学纷纷感慨称之为“神器”。但是在0点开始之前还是出现了一个小插曲。那一年,有惊无险。0点的成功率满足期望。而且系统容量和0点的峰值差不多吻合。用户体验刚刚好。
2014年:异地多活,大战告捷
2014年,由于用户和数据的急剧增长,杭州的机房已经容纳不下我们的系统扩容了。于是我们在上海建立了新的机房,双11当天,真正启动并且实现了异地多活的梦想。那一年是顺利的一次双11,系统和用户体验都没有问题。在双11的总结中我们发现了一个特别明显的趋势,就是无线的占比越来高,双11当天0点已经超过50%。
2015年:生死时刻,幸运降临
流量大大超过了我们的预期,机器资源发生争抢,有10%的物流机器被打死,无法响应,那么落入这批机器的用户就会购mai失败。在0点10分的时候,我们做了一个决策,直接剔除了这批死掉的机器,系统的成功率重新恢复到正常值,幸运地扛住了那个0点。
2016年:数据缓存,巨大突破
阿里自研缓存技术产品-Tair,数据库因为有了Tair的帮助,才扛起了双11如此巨大的数据访问量。
X-KV诞生,它是X-DB的KV组件,通过绕过SQL解析的过程,直接访问内存中的数据,可以实现非常高的性能以及比SQL接口低数倍的响应时间。用户反馈非常好,QPS可以做到数十万级别。
2017-2018年:存储计算分离的技术突破
2017年初,集团高年级技术同学们发起了一个技术讨论:到底要不要做存储计算分离?为了验证可行性,我们选择在开源分布式存储Ceph的基础上进行优化,阿里自研高性能分布式存储盘古2.0也在开发中,数据库内核团队也通过数据库内核优化减少网络延迟对数据库性能的影响。2017年双十一,证明了数据库存储计算分离是完全可行的。
2019年:我们还能怎么优化?
Spring boot已经成为必须,Spring Data。Spring cloud ,redis缓存 外加大数据 微服务 中间件防堵塞 分布式部署。 大大解决了众多人群的访问,因为分布式部署只能Spring boot主导。诚筑说高并发理财支付全站案例让你也可以拥有一个属于自己的系统。也许未来你也可以成为双十一千军万马中的一员,用代码打这场java的硬仗。
十年双十一,技术在挫折中不断前进,无数工程师们的日夜奋战为这个节日保驾护航。在2018双十一到来之际,诚筑说向所有牧码同行说声辛苦,感谢你们用代码铺设大家的欢乐旅程。