电商双11的一些技术准备

      双11对于电商来说,及其的关键,是一场大仗,对于技术人员来说,是一次挑战和提升的地方。

首先是战前准备,准备的越充分,能够面对的突发情况就能越从容。

      首先是准备,对机器扩容,面对流量的大涨很重要的一件事就是对机器的扩容,扩容要怎么整

就需要自己进行压测,根据单机压测来进行扩容申请是比较合理的。压测过程中会发现一些程序中

的性能问题以及相应的应对方法。比如并发量大的情况下,定时任务清理磁盘,此时写日志会导致

tp99升的特别高,请求在单机上变得特别多,cpu增高、内存增大等一系列连锁情况,解决办法避免 

并发量高时清理磁盘,或调整日志级别处理日志。还遇到了网络突然重传包增加,初步定为为网络出现

拥塞或阻塞导致需要重传包,这时网络持续有问题需要将节点直接下掉避免单个或几个节点故障,性能

好后可重新上线。

      其次是根据压测对于tp99高于50的应用要进行优化,优化是首先是减少数据库、缓存调用次数,一般

这两个调用次数越多,占用时间越长。这次优化一个问题时遇到了将eheache中数据转换为比较复杂类型

并且数据本身有几千个的时候比如Map<String,List<String>>发现用时特别长高达20ms,自己基于线程

安全单例以及ConcurrentHashMap实现了自己的缓存解决了问题,数据特别大写日志也会导致耗费长达20ms,

禁止写比较大的数据日志。

      后续就是降级开关以及扩容后的联合压测,降级是达到流量上线cpu、内存、tp99等指标上升过高

给予通用数据,不要在经过复杂计算了通过配置实现。

       扩容后压测

       

      小结:对于双11要提前准备,比如我们这次是9月初就开始统计扩容了。所有的准备预案事情都要尽量提前

,提前15天左右会禁网此时无紧急情况已经无法上线。

 

      待续。。。

 

posted @   杉枫  阅读(368)  评论(0编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
点击右上角即可分享
微信分享提示