企业java春季云b2bc商城系统开源二次开发-histrix请求缓存


浏览:673 次

Hystrix支持缓存请求的结果。具有相同密钥的下一个请求将直接从缓存中获取结果,从而减少请求开销。要使用此功能,必须管理HystrixRequestContext。如果请求B需要使用请求A的结果缓存,则A和B必须在同一上下文中。通过HystrixRequestContext。initializeContext()和contextShutdown()可以构建上下文。这两个语句之间的所有请求都在同一上下文中。当然,这个管理过程可以通过用户定义的过滤器来实现。

对于大型企业需要JAVA Spring Cloud分布式微服务云的B2B2C电子商务平台的源代码,请添加Penguin:2147775633

Hystrix请求缓存注释

@CacheResult添加此注释的方法将启用请求缓存。默认情况下,此方法的所有参数都用作缓存的键。也就是说,只有当该方法的所有参数一致时,缓存才会运行。

@服务

公共类UserCacheService{

@自动连线

私有用户FeignClient用户Feign客户端;

/**

*@HystrixCommand Enabled的RequestCache控制是否支持缓存

*即使requestCache,也只能缓存@CacheResult。enabled=真

*@param id用户id

*@return指定的用户

*/

@缓存结果

@HystrixCommand(命令属性={

@HystrixProperty(名称=“requestCache.enabled”,值=“true”)

})

公共用户findUserById(整数id){

return userFeignClient.findUserById(id);

}

}

如果requestCache。enabled设置为false,则即使添加了@CacheResult,缓存也不会工作。

@CacheKey可以通过此注释指定缓存的密钥

@缓存结果

@HystrixCommand(命令属性={

@HystrixProperty(名称=“requestCache.enabled”,值=“true”)

})

公共用户findUserByIdAndName(@CacheKey整数id,字符串名称){

返回userFeignClient.findUserById(id);

}

在上面的代码中,我们使用@CacheKey修改了id字段,这意味着默认情况下将缓存具有相同id的请求,而不考虑name字段。如果指定@CacheResult的cacheKeyMethod属性,则@CacheKey注释无效

@CacheRemove此注释用于使缓存无效

/**

*指定在通过@CacheRemove注释调用findUserById时删除此方法的缓存

*@param id用户id

*@param name用户名

*@return指定的用户

*/

@缓存结果

@缓存删除(commandKey=“findUserById”)

@HystrixCommand(命令属性={

@HystrixProperty(名称=“requestCache.enabled”,值=“true”)

})

公共用户findUserByIdAndName2(@CacheKey整数id,字符串名称){

return userFeignClient.findUserById(id);

}

上面的代码指定@CacheRemove的属性commandKey的值为findUserById,当调用findUserById时,该值用于删除此方法的缓存。

解决方案:
相关资讯:
这就是为什么使用生鲜配送系统

这就是为什么使用生鲜配送系统

查看
不选择生鲜配送系统有什么好处?

不选择生鲜配送系统有什么好处?

查看
生鲜电商控制生鲜消费的好方法是什么

生鲜电商控制生鲜消费的好方法是什么

查看
统软云让生鲜电商拥有大品牌般的生鲜配送体系

统软云让生鲜电商拥有大品牌般的生鲜配送体系

查看
统软云:如何让生鲜配送企业的财务管理更加顺畅

统软云:如何让生鲜配送企业的财务管理更加顺畅

查看