Java 基于外部客户端缓存控制头的缓存

Java 基于外部客户端缓存控制头的缓存,java,rest,caching,resttemplate,feign,Java,Rest,Caching,Resttemplate,Feign,我们正在从HttpClient转移到现在使用RestTemplate,甚至更好的假装客户端。但看看响应缓存,它似乎是在“外国11”的路线图中 我正在考虑是否可以编写一种自定义机制来支持基于缓存控制头的缓存。我将尝试用示例来解释这一点 服务A公开一个API/greet/{name}。此API发送最大年龄 响应头,以便客户端可以缓存响应 服务B使用FaignClient调用此API 下面是示例外部接口 @FeignClient(name="app/app", contextId="AppServic

我们正在从HttpClient转移到现在使用RestTemplate,甚至更好的假装客户端。但看看响应缓存,它似乎是在“外国11”的路线图中

我正在考虑是否可以编写一种自定义机制来支持基于缓存控制头的缓存。我将尝试用示例来解释这一点

服务A公开一个API/greet/{name}。此API发送最大年龄 响应头,以便客户端可以缓存响应

服务B使用FaignClient调用此API

下面是示例外部接口

@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);
}
支持缓存的一种方法是,在外部客户机之上添加一个中间层,并根据需要缓存响应。但这会将缓存逻辑带到客户端,我想确保将要缓存多少(最大年龄头)的决定权留给服务器,而客户端不应该驱动它

这里的问题是——我们知道什么时候可以在外文中获得缓存支持吗?是否有任何临时解决方案可以让我们仍然拥有缓存支持?考虑到它的抽象性,Feign确实很好,我们不想编写代码来使用restemplate调用它


非常感谢您的推荐。

我正在开发我自己的业余爱好应用程序,并且正在考虑完全相同的事情,然后我突然想到了您的问题。到目前为止,我决定使用代理(这一个有很好的缓存支持)来访问我的微服务。我用的是弹簧靴。我正在寻找一种方法来做这件事。 因此,来自Fiegn客户机的每个请求都将首先命中我的okhttp客户机,并提供缓存支持,然后它将执行所有神奇的操作,将请求转发到eureka server micro service,或者不转发到eureka server micro service。
我的微服务使用一个非常特定的http客户端来执行请求,而我不这样做;我不想碰那个部分。

我实际上是在构建我自己的业余爱好应用程序,并且在思考完全相同的事情,然后我突然想到了你的问题。到目前为止,我决定使用代理(这一个有很好的缓存支持)来访问我的微服务。我用的是弹簧靴。我正在寻找一种方法来做这件事。 因此,来自Fiegn客户机的每个请求都将首先命中我的okhttp客户机,并提供缓存支持,然后它将执行所有神奇的操作,将请求转发到eureka server micro service,或者不转发到eureka server micro service。 我的微服务使用一个非常特定的http客户端来执行请求,而我不这样做;我不想碰那部分