Skip to content

Latest commit

 

History

History
64 lines (52 loc) · 4.44 KB

README.md

File metadata and controls

64 lines (52 loc) · 4.44 KB

Кеширующий прокси для дадаты

Данный сервер предназначен для скрытия ключа дадаты из заголовков запроса и увеличения скорости реакции на запрос примерно в 60 раз при чтении из кеша. Дополнительно достигается увеличение ограничения количества запросов к дадате путем снижения количества реальнных запросов благодаря использованию кеша.

На текущем этапе развития сервер кеширует в Redis результат любого удачного запроса. Информация об организации по ИНН кешируется с увеличенным сроком жизни.

Для запроса информации о юр.лице по ИНН (/suggestions/api/4_1/rs/findById/party) создается дополнительный ключ вида inn:100500 со ссылкой на результат запроса.

Можно ограничить максимальное количество разрешенных запросов к дадате в сутки. Таким образом можно балансировать ресурс дадаты между несколькими потребителями. Для этого нужно запустить несколько копий сервера с единым кешем и разными идентификаторами приложения, такой запуск не поддерживается через ddproxy.sh. Ограничение количества запросов не распространяется на те, что попали в кеш. В суточном счетчике запросов учитываются только те, что завершились успешно, сутки считаются по локальной таймзоне сервера, где запущен прокси.

Конфигурация (.env)

Сервер читает свою конфигурацию при запуске из файла .env в корневой папке приложения. Перезагрузка конфигурации без перезапуска сервера не предусмотрена.

APP_ID=default # идентификатор приложения для установки ограничений
APP_LIMIT=0 # максимальное количество запросов к дадате в сутки (0 - без ограничений)
SERVER_PORT=3000 # порт, который слушает сервр
DADATA_BASEURL='https://suggestions.dadata.ru' # базовый урл куда будут проксироваться запросы
DADATA_TOKEN=ComeAndGetYourOwnToken # ваш токен для атворизации в дадата
REDIS_OPTIONS_URL='redis://127.0.0.1:6379' # урл подключения к redis
REDIS_EXPIRE=60 # время жизни кеша запросов по-умолчанию (сек.)
REDIS_EXPIRE_INN=2592000 # вермя жизни кеша запросов по ИНН (сек.)
REDIS_EXPIRE_EMPTY=86400 # время жизни кеша пустых ответов на ИНН (для недавно зарегистрированных юр.лиц, сек.)

Пример конфигурации см. в файле .env.example

Поддержка кластера

В урл подключения к redis можно передать наобор узлов кластера в виде host:port разделитель - запятая , без пробелов. Например, REDIS_OPTIONS_URL='192.168.1.1:6379,192.168.1.2:6379'.

Запуск и остановка

Сервер содержит скрипт для управления в корневой папке приложения

ddproxy.sh { start | stop | restart | status }

Внимание! при запуске от root или обычного пользователя создает PID и лог файлы в разных местах, подробнее см. в ddproxy.sh

Так же сервер может быть запущен командами

npm start

или

node server/index.js

(c)2021 aleksandr.ru