Почему mdadm --zero-superblock сохраняет информацию о файловой системе?

у меня есть два раздела жесткого диска, которые я объединил в RAID1, используя mdadm , и создал файловую систему ext4 на получившееся устройство.

Когда я mdadm --zero-superblock два раздела и воссоздаю RAID, и кэшировать эти API на 10 секунд, если частота запросов> 500 и 3 секунды, если скорость> 150.

Как мы можем сделать это, используя Nginx или Varnish ? Или другие решения? CDN?

0
задан 9 May 2018 в 04:45
2 ответа

Вы можете добиться этого с помощью сервера кеширования Nuster

# cache /heavy for 100 seconds if be_conn greater than 10
acl heavypage path /heavy
acl tooFast be_conn ge 100
nuster rule heavy ttl 100 if heavypage tooFast

Я не знаю, является ли API частным или общим? В случае, если он частный, то есть результат API отличается для каждого пользователя, вы также можете кэшировать / api / heavy для каждого пользователя следующим образом:

nuster rule heavy key method.scheme.host.uri.cookie_sessionID ttl 100 if heavypage tooFast

Надеюсь, это поможет

1
ответ дан 4 December 2019 в 15:58

Возможный подход с использованием Varnish: во время vcl_recv используйте Redis VMOD (отказ от ответственности: я автор) или некоторое регулирование VMOD (например, vsthrottle включен в https://github.com/varnish/varnish-modules ) для проверки / обновления частоты запросов к конечной точке API. Если не превышает лимит, пропустите кэш, просто выполнив проход . В противном случае выполните хэш и кэшируйте, как это требуется, во время vcl_backend_response . Это можно легко обобщить, если требуется более одного ограничения.

vsthrottle намного проще, чем подход Redis, но, очевидно, является локальным для каждого экземпляра Varnish. Обычно это нормально для сценария дросселирования, поэтому в большинстве случаев не нужно добавлять Redis в стек.

0
ответ дан 4 December 2019 в 15:58

Теги

Похожие вопросы