您现在的位置是:主页 > 数据库技术 > 数据库技术
Spring Cloud中Hystrix缓存与合并请求的示例分析
IDCBT2021-12-25【服务器技术】人已围观
简介小编给大家分享一下Spring Cloud中Hystrix缓存与合并请求的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们
小编给大家分享一下Spring Cloud中Hystrix缓存与合并请求的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!
缓存与合并请求缓存注解在6.3章节中,讲述了Hystrix的缓存功能,在Spring Cloud中,同样支持使用缓存,并且可以通过注解来实现。根据前面章节可知,缓存与合并请求功能,需要先初始化请求上下文才能实现。新建一个javax.servlet.Filter,用于创建与销毁Hystrix的请求上下文,请见代码清单6-9。
代码清单6-19:
codes\06\6.4\spring-hystrix-invoker\src\main\java\org\crazyit\cloud\HystrixFilter.java
@WebFilter(urlPatterns = "/*", filterName = "hystrixFilter") public class HystrixFilter implements Filter { public void init(FilterConfig filterConfig) throws ServletException { } public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { HystrixRequestContext context = HystrixRequestContext .initializeContext(); try { chain.doFilter(request, response); } finally { context.shutdown(); } } public void destroy() { } }
编写服务方法,使用@CacheResult注解进行修饰,请见代码清单6-20。
代码清单6-20:CacheService.java
@Component public class CacheService { @CacheResult @HystrixCommand public Person getPerson(Integer id) { System.out.println("执行 getPerson 方法"); Person p = new Person(); p.setId(id); p.setName("angus"); return p; } }标签:很赞哦! ()