Как использовать Redis с шлюзом kong api

Мы используем шлюз kong api как единый шлюз для всех API. мы сталкиваемся с проблемой задержки с некоторыми из наших API (1500-2000 мс). позже, когда мы проверили, задержка создавалась из-за плагина «ограничения скорости». Когда мы отключаем плагин, задержка улучшается, и ответ такой же, как и тот, который мы получаем напрямую от IP (около 300 мс). Я пытаюсь настроить узел Redis для кеширования запросов к базе данных, я не уверен, как мы можем настроить kong для чтения из самого Redis. как мы можем кэшировать запросы к базе данных на узел redis. Мы используем postgresql для kong.


person Divy    schedule 03.09.2018    source источник


Ответы (1)


Я думаю, может быть, вы пытаетесь делать несколько разных вещей одновременно.

Во-первых, ограничение скорости: каково значение вашего параметра config.policy? В документации Kong есть три значения: "local (счетчики будут храниться локально в памяти на узле), cluster (счетчики хранятся в хранилище данных и используются всеми узлами) и redis (счетчики хранятся на сервере Redis и будут совместно использоваться узлами) ".

Если вы наблюдаете высокую задержку и ваш config.policy установлен на cluster или redis, это может быть связано с задержкой между Kong и postgres / redis (в зависимости от того, какую политику вы используете). Если вы используете ограничение скорости только для предотвращения злоупотреблений, использование «локальной» политики будет быстрее. (Подробнее об этом в документации Kong.)

Другой вопрос касается кеширования: Kong Enterprise имеет встроенный плагин кеширования, но для Kong Community, поскольку он построен на базе Nginx, вы можете выполнять кеширование с помощью Nginx. Эта ссылка может вам помочь.

person esperluette    schedule 03.09.2018
comment
Спасибо @esperluette. В политике ограничения скорости плагина был установлен кластер, который создавал большую задержку. позже я изменил его на локальный, что уменьшило задержку до 300 мс. Я проверю предоставленную ссылку для кеширования из nginx. Спасибо еще раз!! - person Divy; 05.09.2018
comment
спасибо, что сообщили мне, что это сработало для вас! Я вижу, вы новичок в Stack Overflow, добро пожаловать! Если бы вы могли отметить этот ответ как «принятый» (нажмите на галочку), это было бы здорово! (Подробнее о принятых ответах здесь: stackoverflow.com/help/someone-answers) - person esperluette; 06.09.2018