Кэширование на основе заголовков Cache-Control с Feign Client

Мы отказываемся от HttpClient, чтобы теперь использовать RestTemplate, даже лучше FeignClient. Но, глядя на https://github.com/OpenFeign/feign, кажется, что кэширование ответов находится в пути. карта притворства 11.

Я рассматривал возможность написания собственного механизма для поддержки кэширования на основе заголовков управления кэшем. Я попытаюсь объяснить это на примере примера

Служба A предоставляет API /greet/{name}. Этот API отправляет заголовок ответа максимального возраста, чтобы клиент мог кэшировать ответ.

Служба B вызывает этот API с помощью FeignClient.

Ниже приведен пример интерфейса Feign.

@FeignClient(name="app/app", contextId="AppService", configuration=AppConfig.class)
public interface AppFeignService {

    @GET
    @Path(value = "/api/greet/{name}")
    public String greet(@PathParam("name") String name);
}

Одним из способов поддержки кэширования является добавление промежуточного уровня над фиктивным клиентом и кэширование ответа в зависимости от потребностей. Но это переносит логику кэширования на сторону клиента, и я хочу убедиться, что решение о том, сколько кэшировать (заголовок max-age), должно быть оставлено на сервере, а клиент не должен управлять им.

Вопрос здесь в том, знаем ли мы, когда мы можем ожидать поддержку кэширования в Feign? Есть ли какое-то временное решение, которое мы можем использовать, чтобы по-прежнему поддерживать кэширование? Feign действительно хорош, учитывая его абстракцию, и нам не очень хочется писать код для его вызова с помощью RestTemplate.

Ваши рекомендации высоко ценятся.


person user1401472    schedule 02.12.2019    source источник


Ответы (1)


На самом деле я создаю свое собственное приложение для хобби и думал о том же, а затем я наткнулся на ваш вопрос. На данный момент я решил использовать https://square.github.io/okhttp/ в качестве прокси (у этого очень хорошее кэширование support) к моему микросервису. Я использую весеннюю загрузку. Я ищу способ сделать это. Таким образом, каждый запрос от клиента Fiegn сначала попадает на мой клиент okhttp с поддержкой кэширования, а затем выполняет всю магию, чтобы перенаправить запрос на микросервис eureka server или нет. Мой микросервис использует очень специфический http-клиент для выполнения запроса, и я не хочу касаться этой части.

person SatSom    schedule 18.09.2020