Встречается на 2% собеседований по Java

Как делал кэширование запросов из внешних сервисов

Для кэширования запросов к внешним сервисам в Java обычно используют:

  1. Spring Cache (простая интеграция через аннотации):
java
@Cacheable("users")
public User getUserById(Long id) {
    return restTemplate.getForObject("/users/{id}", User.class, id);
}
  1. Guava Cache (гибкая настройка):
java
Cache<Long, User> cache = CacheBuilder.newBuilder()
    .maximumSize(1000)
    .expireAfterWrite(10, TimeUnit.MINUTES)
    .build();

public User getUser(Long id) {
try {
return cache.get(id, () -> fetchUserFromService(id));
} catch (ExecutionException e) {
throw new RuntimeException(e);
}
}

text

3. **Redis** (распределённое кэширование):
```java
@Cacheable(value = "users", cacheManager = "redisCacheManager")
public User getUser(Long id) {
    // запрос к внешнему сервису
}

Ключевые моменты:

  • Учитывайте TTL (время жизни кэша)
  • Обрабатывайте ошибки кэширования
  • Для часто изменяющихся данных используйте короткий TTL
  • Для критичных данных реализуйте механизм инвалидации кэша
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы