Kong入门指南
目录
1. 总览
2. 准备管理Kong Gateway
3. 通过Kong Gateway公开您的服务
4. 保护您的服务
5. 通过代理缓存提高性能
6. 使用身份验证保护服务
7. 设置智能负载平衡
在本文中,您将学习如何使用Kong Gateway的代理缓存插件来使用代理缓存来提高响应效率。
如果您根据入门指南学习,请确保已完成“Kong入门指南 - 保护您的服务 ”学习。
什么是代理缓存?
Kong Gateway通过缓存提供了快速的性能。代理缓存插件使用反向代理缓存实现来提供这种快速性能。它根据请求方法,可配置的响应代码,内容类型来缓存响应实体,并且可以按消费者或API进行缓存。
缓存实体将存储一段可配置的时间。达到超时后,Kong Gateway会将请求转发到上游,对结果进行缓存并从缓存进行响应,直到超时为止。该插件可以在Redis中将缓存的数据存储在内存中,或提高性能.
为什么要使用代理缓存?
使用代理缓存,以使上游服务不会因重复的请求而面临请求压力,而Kong Gateway可以响应缓存的结果。
设置代理缓存插件
在端口上调用Admin API 8001并配置插件以全局启用内存中缓存,Content-Type的超时时间为30秒application/json。
使用cURL:
$ curl -i -X POST http://<admin-hostname>:8001/plugins
--data name=proxy-cache
--data config.content_type="application/json"
--data config.cache_ttl=30
--data config.strategy=memory
验证代理缓存
让我们检查代理缓存是否有效。
- 使用Admin API 访问/ mock路由,并记下响应标头。
使用cURL
$ curl -i -X GET http://<admin-hostname>:8000/mock/request
特别是要密切关注的响应头 X-Cache-Status,X-Kong-Proxy-Latency以及X-Kong-Upstream-Latency:
HTTP/1.1 200 OK
...
X-Cache-Key: d2ca5751210dbb6fefda397ac6d103b1
X-Cache-Status: Miss
X-Content-Type-Options: nosniff
...
X-Kong-Proxy-Latency: 25
X-Kong-Upstream-Latency: 37
- 再次访问/ mock路由。
这个时候,注意到的响应头的差异X-Cache-Status,X-Kong-Proxy-Latency和X-Kong-Upstream-Latency。缓存状态为hit,这意味着Kong Gateway直接从缓存中响应请求,而不是将请求代理到上游服务。
此外,请注意响应中的最小延迟,这使Kong Gateway可以提供最佳性能:
HTTP/1.1 200 OK
...
X-Cache-Key: d2ca5751210dbb6fefda397ac6d103b1
X-Cache-Status: Hit
...
X-Kong-Proxy-Latency: 0
X-Kong-Upstream-Latency: 1
- 为了更快地进行测试,可以通过调用Admin API删除缓存:
使用cURL:
$ curl -i -X DELETE http://<admin-hostname>:8001/proxy-cache