高并发环境下如果能处理好缓存就可以有效的减小服务器的压力,Java中有许多非常好用的缓存工具,比如Redis、EHCache等,当然在Spring Cloud的Hystrix中也提供了请求缓存的功能,我们可以通过一个注解或者一个方法来开启缓存,进而减轻高并发环境下系统的压力。
请求缓存的整个生命周期
下图关于是请求缓存的整个生命周期
缓存优势
- 复用性:这里的复用性指的是代码复用性
- 一致性:也就是常说的幂等性,不管请求几次,得到的结果应该都是一样的
- 减少重复工作:由于请求缓存是在HystrixCommand的construct()或run()运行之前运行,所有可以有效减少线程的使用
适用场景
- 请求缓存的优势显而易见,但是也不是银弹。
- 在读少写多的场景就显得不太合适,对于读的请求,需要add缓存。对于增删改的请求,需要把缓存remove。在增加系统资源开销的同时,又很鸡肋。
- 所以一般适合读多写少的场景。似乎所有缓存机制都有这个局限性吧。
为了介绍Hystrix的缓存如何使用,先搭建一些服务做好准备工作: