spring cloud hystrix 캐 시 요청(request cache)
Hystrix 캐 시 주석 요청
@CacheResult 가 이 주 해 를 추가 하 는 방법 은 캐 시 를 요청 합 니 다.기본적으로 이 방법의 모든 매개 변 수 는 캐 시 키 입 니 다.즉,이 방법의 모든 매개 변수 가 일치 할 때 만 캐 시 를 실행 합 니 다.
@Service
public class UserCacheService {
@Autowired
private UserFeignClient userFeignClient;
/**
* @HystrixCommand requestCache.enabled
* @CacheResult , requestCache.enabled=true
* @param id id
* @return
*/
@CacheResult
@HystrixCommand(commandProperties = {
@HystrixProperty(name="requestCache.enabled",value = "true")
})
public User findUserById(Integer id){
return userFeignClient.findUserById(id);
}
}
requestCache.enabled 가 false 로 설정 되면@CacheResult 를 추가 하 더 라 도 캐 시가 작 동 하지 않 습 니 다.@CacheKey 이 주석 을 통 해 캐 시 키 를 지정 할 수 있 습 니 다.
@CacheResult
@HystrixCommand(commandProperties = {
@HystrixProperty(name="requestCache.enabled",value = "true")
})
public User findUserByIdAndName(@CacheKey Integer id,String name){
return userFeignClient.findUserById(id);
}
위의 코드 는@CacheKey 로 id 필드 를 수 정 했 습 니 다.id 와 같은 요청 이 있 으 면 기본적으로 캐 시 를 실행 합 니 다.name 필드 와 상 관 없 이@CacheResult 의 cacheKeyMethod 속성 을 지정 하면@CacheKey 주석 이 잘못 되 었 습 니 다.@CacheRemove 이 주석 은 캐 시 를 무효 화 하 는 역할 을 합 니 다.
/**
* @CacheRemove findUserById
* @param id id
* @param name
* @return
*/
@CacheResult
@CacheRemove(commandKey = "findUserById")
@HystrixCommand(commandProperties = {
@HystrixProperty(name="requestCache.enabled",value = "true")
})
public User findUserByIdAndName2(@CacheKey Integer id,String name){
return userFeignClient.findUserById(id);
}
상기 코드 는@CacheRemove 의 속성 commandKey 의 값 을 findUserById 로 지 정 했 습 니 다.findUserById 를 호출 할 때 이 방법의 캐 시 는 삭 제 됩 니 다.전체 코드 참조:https://github.com/jingangwang/micro-service
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
thymeleaf로 HTML 페이지를 동적으로 만듭니다 (spring + gradle)지난번에는 에서 화면에 HTML을 표시했습니다. 이번에는 화면을 동적으로 움직여보고 싶기 때문에 입력한 문자를 화면에 표시시키고 싶습니다. 초보자의 비망록이므로 이상한 점 등 있으면 지적 받을 수 있으면 기쁩니다! ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.