JD-20170726

这两天系统出现并发下串用户的问题,不少用户进某页面发现是别人的页面

这是个非常常见的问题并且看似属于低级错误,问了一下朋友说是分布式部署串了session了

于是我们五个开发人员开始全力分析代码并尝试复现,不是session,cookie也没问题,缓存也没问题,有人说request的问题,但也无从证明。一开始怀疑是request和response注入的时候没考虑高并发,被否定。还有个人说是servlet是单例的问题导致全局资源存在,也被后来的测试否定。

一个架构师,四个高级开发,分析了一两天,还是没有解决问题

晚上吃饭回到办公室,我:串用户的问题就是这两天才爆发的,应该全力分析这两天做了什么?这两天除了做缓存及延迟队列异步优化,还有什么?

架构师说只上了个CDN,其他三位反思最近优化的代码

我:撤销CDN,进行并发尝试。架构师说不可能是CDN的问题,CDN只缓存了JS和图片这类静态资源

无奈大家实在焦头烂额,架构师只好说那尝试一下吧,也没别的办法了

撤掉CDN、并发测试。此时,转机来了:没有出现串用户的现象!几个人刷了好多次都没出现!

这下大伙全来劲了,开始准备再上CDN尝试,结果不出所料,上了CDN立刻复现问题!

真的是CDN的问题!

此时大家都很激动!这么一个并发问题头疼了两天竟然终于搞定了!

后边开始反思,为什么CDN会导致串用户呢?于是分析CDN加速机制,推测应该是静态资源缓存机制不够完善,把某些参数暂时不变的请求接口返回的资源也当静态资源缓存了,或者是把整个前端资源都缓存了,导致并发请求过程中某些资源在CDN缓存中被共享,从而导致资源串通,引发上述问题!

自从加入JD后,学到的东西真是很多,首先就是立刻上马高并发高可用研发,虽然没到上亿级,但是当前这种程度足够让我这个从传统开发过来的技术人员受益匪浅……在华为,在AIA,在同方,是学不到这些经验的

另外,出问题时保持冷静的具有分析的头脑非常重要。当几位牛人都团团转的时候,能明确地指出关键点,坚持自己的分析,并引领大家去解决,还是很有成就感的

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值