Поведение Google CDN при обслуживании одновременных (чанкованных) запросов - PullRequest
0 голосов
/ 08 октября 2018

Я пытаюсь понять поведение Google CDN в следующем сценарии:

  • Предположим, у меня есть бэкэнд-служба, обслуживающая фрагментированные данные http.Для объяснения давайте предположим, что обработка одного запроса занимает до 10 с

  • Давайте представим случай, когда файл запрашивается через CDN клиентом А, и что этоВ настоящее время файл не кэшируется в CDN.Запрос поступит в бэкэнд-сервис, который начнет обслуживать файл.Клиент A немедленно начнет получать фрагменты HTTP

  • Через 5 секунд другой клиент B запросит тот же файл.Я могу представить 3 возможных варианта поведения, но не могу понять, как управлять этим с помощью конфигурации CDN:

Вариант a: CDN просто передает запрос бэкэнд-службе, игнорируяэта половина файла уже была обработана и может быть уже кэширована.Не желательно, так как служба бэкэнда будет доступна дважды и будет обслуживать одни и те же данные дважды.

Вариант b: CDN переводит второй запрос в режим «удержания», ожидая, пока первый запрос будет завершен, прежде чем обслуживать клиента Bиз своего кэша (в этом случае запрос B не попадает в бэкэнд-сервис).Хорошо, но все же не удивительно, так как клиент B будет ждать 5 секунд, прежде чем получать какие-либо данные http.

Вариант c: CDN немедленно обслуживает первую половину фрагментов http, а затем - остальные фрагменты http с той же скоростью, что изапрос А. Идеально!

Есть идеи по поводу текущего поведения?И что мы можем сделать, чтобы получить вариант C, который на сегодняшний день является нашим предпочтительным вариантом?

Tnx, хорошего дня!

Jeannot

Ответы [ 2 ]

0 голосов
/ 13 октября 2018

Что касается вашего последнего запроса, к сожалению, только ресурсы, для которых поддерживается обслуживание диапазона байтов, в настоящее время имеют право на кеширование чанков.Вы можете определенно создать запрос функции для своего варианта использования на Google Issue Trackers .

Хорошей новостью является то, что кеширование чанков с Cloud CDN теперь в GA, и вы можете проверить функциональность в любое время, когда выпожелает.

0 голосов
/ 10 октября 2018

Важно отметить, что GFE исторически кэшировал только полные ответы и сохранял каждый ответ как единое целое.В результате текущее поведение будет следовать варианту А. Вы можете просмотреть эту статью справочного центра для подробнее .

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

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

Чтобы быть более понятным,как только кеширование чанков выполнено в GA, вы сможете достичь предпочтительного варианта C.

...