海量请求的解决之道--千万级并发的解决方案
海量请求的解决之道–千万级并发的解决方案(请求合并)
设计原理 看标题就可以理解,请求合并就是将请求收集起来,进行一个批量的处理。哪请求收集,怎么收集?收集多少?什么时候收集?又什么时候结束呢? 想想一下,你喊来100万个小伙伴,在某个时间段里,请求我的接口。我是不敢想,假如接口是个人的话,当场就吐血身亡了。这是喊来的小伙伴规定一个时间段测试,平时可能没有什么人访问我的接口。那么收集请求,以规定多少请求数量来批量处理,哪收集不到规定数量,那就不处理。用屁股想,这样是不合理的。那以某一时间段内收集的请求数量,来做为一个批量的批量处理。这样的设计才是合理。 原理图
看代码
在接口实现类中定义一个内部类,和初始化方法。
实现类请求接口
通过两个线程间的通讯
测试
测试我不想写一个模拟千万请求的测试。我就用写了个controller类,用浏览器简单的模拟了一下多请求的测试。 先看controller代码 模拟多个请求访问 看一眼控制台 代码不是最重要的,重要的是思路,如果你学会了,想一想,你以前写的代码,有哪些可以像这样进行改善。想一想以后再写代码前,我是不是可以用到这样的设计模式。