【发布时间】:2020-03-26 17:53:01
【问题描述】:
我们正在从 HttpClient 转移到现在使用 RestTemplate,甚至更好的 FeignClient。但看看https://github.com/OpenFeign/feign,似乎响应缓存在 feign 11 的路线图中。
我正在研究编写自定义机制以支持基于缓存控制标头的缓存的可能性。我将尝试通过示例来解释这一点
服务 A 公开了一个 API /greet/{name}。此 API 发送 max-age 响应头,以便客户端可以缓存响应。
服务 B 使用 FeignClient 调用此 API
下面是 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);
}
支持缓存的一种方式是,在feign客户端之上添加一个中间层,根据需要缓存响应。但这会将缓存逻辑带到客户端,我想确保缓存多少(max-age 标头)的决定应该留给服务器,而客户端不应该驱动它。
这里的问题是——我们知道什么时候可以期待 Feign 中的缓存支持吗?有没有我们可以采用的临时解决方案来仍然支持缓存?考虑到 Feign 的抽象性,它确实很棒,我们真的不想编写代码来使用 RestTemplate 调用它。
我们非常感谢您的建议。
【问题讨论】:
标签: java rest caching resttemplate feign