缓存 REST API (JAX-RS)
Caching REST API (JAX-RS)
我想提高我的 REST API 的性能,我一直在阅读有关 HTTP 缓存的内容,但我认为我不理解这个概念。如果我有这个资源:
@GET
@Path("/test")
@Produces(MediaType.APPLICATION_JSON)
public Response test() {
Car car = new Car();
car.setName("Just a car");
CacheControl cc = new CacheControl();
cc.setMaxAge(86400);
Response.ResponseBuilder builder = Response.ok(car);
builder.cacheControl(cc);
return builder.build();
}
具体是什么意思?这是否意味着在达到最大年龄之前不会再次执行请愿书?或者我必须在客户端手动处理 Cache-Control header 吗?我很困惑,帮我理解一下。
谢谢。
提高 REST 的性能 api 响应时间:
如果 api 被多个不同的客户端使用,那么 cache-control 将无济于事。而是使用实际缓存要发送的响应的缓存框架。比如使用 memcache 或 in-memory 缓存或文件缓存。
如果想要提高性能,这样一个客户端就不需要再次点击 api 来避免网络调用。然后 cache-control headers 在客户端使用 httpCaching。 CDN 还用于 off-loads 服务器获取请求的缓存目的。
你也可以试试这个 api jcabi
您不必实现任何缓存逻辑,只需注释即可发挥作用,您可以在控制器、服务或 dao 等任何级别使用它。
我想提高我的 REST API 的性能,我一直在阅读有关 HTTP 缓存的内容,但我认为我不理解这个概念。如果我有这个资源:
@GET
@Path("/test")
@Produces(MediaType.APPLICATION_JSON)
public Response test() {
Car car = new Car();
car.setName("Just a car");
CacheControl cc = new CacheControl();
cc.setMaxAge(86400);
Response.ResponseBuilder builder = Response.ok(car);
builder.cacheControl(cc);
return builder.build();
}
具体是什么意思?这是否意味着在达到最大年龄之前不会再次执行请愿书?或者我必须在客户端手动处理 Cache-Control header 吗?我很困惑,帮我理解一下。
谢谢。
提高 REST 的性能 api 响应时间:
如果 api 被多个不同的客户端使用,那么 cache-control 将无济于事。而是使用实际缓存要发送的响应的缓存框架。比如使用 memcache 或 in-memory 缓存或文件缓存。
如果想要提高性能,这样一个客户端就不需要再次点击 api 来避免网络调用。然后 cache-control headers 在客户端使用 httpCaching。 CDN 还用于 off-loads 服务器获取请求的缓存目的。
你也可以试试这个 api jcabi
您不必实现任何缓存逻辑,只需注释即可发挥作用,您可以在控制器、服务或 dao 等任何级别使用它。