Sobes.tech
Back to questions
Junior — Middle
56

Каким образом вы реализовали кэширование данных, полученных от сторонних API или сервисов?

Companies where asked
Stroki

Answer from AI

sobes.tech AI

Для кэширования данных, полученных от сторонних API в Java, часто использую встроенные или сторонние решения, например, ConcurrentHashMap для простого кэша в памяти или библиотеки вроде Caffeine и Ehcache для более продвинутого кэширования с поддержкой TTL (времени жизни) и автоматического обновления.

Пример с использованием Caffeine:

import com.github.benmanes.caffeine.cache.Cache;
import com.github.benmanes.caffeine.cache.Caffeine;

Cache<String, String> cache = Caffeine.newBuilder()
    .expireAfterWrite(10, java.util.concurrent.TimeUnit.MINUTES)
    .maximumSize(1000)
    .build();

// Получение данных с кэшированием
public String getData(String key) {
    return cache.get(key, k -> fetchFromApi(k));
}

private String fetchFromApi(String key) {
    // Логика вызова стороннего API
    return "response";
}

Такой подход позволяет избежать повторных запросов к API, уменьшить задержки и нагрузку на сервисы. Важно учитывать актуальность данных и правильно настраивать время жизни кэша.