В приложении Spring (не Spring-boot) я использую аннотацию javanica @HystrixCommand и весенний кеш @Cacheable аннотации по одному и тому же методу bean, Spring выполняет совет кэша перед Гистрикс. Это то, чего я жду, но для меня советы по кешу и советы по гистерезре без какой-либо конфигурации имеют весной такой же порядок: LOWEST_PRECEDENCE.javanica @HystrixCommand и spring @Cacheable порядок выполнения
Я не знаю, что делает этот заказ: он определен где-то или это неопределенный порядок, и мне повезло, что у меня хороший порядок? Что должно быть сделано, чтобы гарантировать, что рекомендации кэша будет выполняться перед советом Hystrix (набор заказов на кэш: аннотацию приводом перед тем LOWEST_PRECEDENCE?)
Это пример моего кода:
...
import org.springframework.cache.annotation.CacheConfig;
import org.springframework.cache.annotation.Cacheable;
import com.netflix.hystrix.contrib.javanica.annotation.HystrixCommand;
import com.netflix.hystrix.contrib.javanica.annotation.HystrixProperty;
...
@Service
@Slf4j
@CacheConfig(cacheManager="myCacheManager")
public class MyRessourcesImpl implements MyRessources {
...
@Override
@HystrixCommand(commandProperties = {
@HystrixProperty(name = "execution.isolation.strategy", value = "SEMAPHORE"),
@HystrixProperty(name = "execution.isolation.thread.timeoutInMilliseconds", value = "10000") })
@Cacheable("cacheName") //from spring cache
public Map<String, String> getTheMap() {
...
}
...
}
С этим весна конфигурации:
<bean id="myCache" class="org.springframework.cache.ehcache.EhCacheManagerFactoryBean" >
<property name="configLocation" value="classpath:/META-INF/...." />
</bean>
<bean id="myCacheManager" class="org.springframework.cache.ehcache.EhCacheCacheManager">
<property name="cacheManager" ref="myCache" />
</bean>
<cache:annotation-driven cache-manager="myCacheManager" />
<aop:aspectj-autoproxy/>
<bean id="hystrixAspect" class="com.netflix.hystrix.contrib.javanica.aop.aspectj.HystrixCommandAspect" />
Спасибо за помощь
Попробуйте [CTRL] + [SPACE] (код завершения) на любом '<кэша: аннотаций приводом />' или ' ' ... Найдите свойство заказа, установите его в том порядке, в котором вы хотите. –
Если совет по кэшу выполняется до того, как советует Hystrix, это означает, что вы можете кэшировать резервные результаты. Я думаю, вы, вероятно, этого не хотите. –