Hystrix는 캐시 된 하나의 요청 결과를 지원하며 동일한 키가있는 다음 요청은 캐시에서 결과를 직접 가져와 요청 간접비를 줄입니다. 이 기능을 사용하려면 hystrixRequestContext를 관리해야합니다. 요청 B가 요청 a의 결과 캐시를 사용하려는 경우, A 및 B는 동일한 컨텍스트에 있어야합니다. 컨텍스트는 hystrixrequestcontext.initializecontext () 및 context.shutdown ()을 통해 구성 할 수 있습니다. 이 두 진술 사이의 모든 요청은 동일한 맥락에 있습니다. 물론이 관리 프로세스는 사용자 정의 필터를 통해 구현할 수 있습니다. 이전 기사 //www.vevb.com/article/140527.htm을 참조하십시오
Hystrix 요청 캐시 주석
@cacheresult이 주석에 추가 된 메소드는 요청 캐싱을 가능하게합니다. 기본적으로 메소드의 모든 매개 변수는 캐시 키로 사용되므로 캐시는 메소드의 모든 매개 변수가 일관된 경우에만 캐시됩니다.
@ServicePublic Class USERCCACHESERVICE {@autowired private userfeignclient userfeignclient; / *** @hystrixcommand의 requestCache.Enabled는 @CacherESult가 추가 될 때만 Caching이 지원되는지 여부를 제어 할 수 있습니다. "true")}) 공개 사용자 findUserById (정수 ID) {return userFeigNclient.finduserByid (id); }}requestCache.Enabled가 False로 설정되면 @CacherEsult가 추가 되더라도 캐시가 작동하지 않습니다.
@Cachekey이 주석은 캐시 된 키를 지정할 수 있습니다.
@CacherEsult @HyStrixCommand (CommandProperTies = {@HyStrixProperty (이름 = "requestCache.Enabled", value = "true"}) 공개 사용자 findUserByIdandName (@CacheKey Integer ID, String Name) {retury userFeignClient.FindUserById (id); }위의 코드에서는 @cachekey로 ID 필드를 수정하여 ID가 동일하다면 캐시가 기본적으로 캐시되고 이름 필드와 관련이 없음을 나타냅니다. @CacherEsult의 CacheKeyMethod 속성을 지정하면 @CacheKey 주석이 잘못되었습니다.
@CacherEmove이 주석의 기능은 캐시를 무효화하는 것입니다.
/ ** * FindUserById가 @CacherEmove 주석 * @Param ID 사용자 ID * @Param 이름 사용자 이름 * @ReTurn Specified User */ @Cacheresult @CacherEmove (CommandKey = "FindUserById") @HyStrixCommand (CommandProperTies = @hyStrixProperty (hhystrixtopy. =) " = "true")}) 공개 사용자 findUserByIdandName2 (@CacheKey Integer ID, 문자열 이름) {return userFeignClient.FindUserById (id); }위의 코드는 @CacherEmove Property CommandKey의 값이 FoundUserById임을 지정합니다. 즉, FindUserById가 호출되면이 메소드의 캐시가 삭제됩니다.
코드의 정식 버전을 참조하십시오 : https://github.com/jingangwang/micro-service
위는이 기사의 모든 내용입니다. 모든 사람의 학습에 도움이되기를 바랍니다. 모든 사람이 wulin.com을 더 지원하기를 바랍니다.