首页 > 解决方案 > kong api网关如何使用redis

问题描述

我们使用 kong api 网关作为所有 api 的单一网关。我们的 api 很少(1500-2000ms)面临延迟问题。后来当我们检查时,由于“速率限制”插件而产生了延迟。当我们禁用插件时,延迟会得到改善,并且响应与我们直接从 IP 获得的响应相同(接近 300 毫秒)。我正在尝试设置 redis 节点来缓存数据库查询,我不确定我们如何配置 kong 以从 redis 本身读取。我们如何将数据库查询缓存到 redis 节点。我们正在为kong使用postgresql。

标签: redisapi-gatewaykong

解决方案


我想也许你正试图同时做几件不同的事情。

首先,速率限制:您的config.policy参数的值是多少?Kong 文档有三个值:“ (local计数器将本地存储在节点的内存中),cluster(计数器存储在数据存储中并在节点之间共享)和redis(计数器存储在 Redis 服务器上,并将在节点)。”

如果您看到高延迟,并且您config.policy的设置为clusteror redis,则可能是由于 Kong 和 postgres/redis 之间的延迟(取决于您使用的策略)。如果您只是为了防止滥用而使用速率限制,则使用“本地”策略会更快。(在 Kong 文档中有更多关于此的内容。)

另一个问题是关于缓存的:Kong Enterprise 有一个内置的缓存插件,但是对于 Kong Community,由于它是建立在 Nginx 之上的,因此您可以使用 Nginx 进行缓存。此链接可能会对您有所帮助。


推荐阅读