Просматривая ежедневную доску задач, я увидел проблему возврата к источнику, которую, как я слышал, обсуждали бэкенд-студенты. Я всегда ничего не знал о знаниях, связанных с cdn, поэтому я воспользуюсь этой возможностью, чтобы тщательно в этом разобраться.
Каталог статей:
- Чем отличается процесс доступа к ресурсам cdn от доступа без cdn
- Что значит вернуться к истокам?
- Помимо статических ресурсов, можно ли кэшировать API?
- Как определить истечение ресурсов? Как cdn обновляет данные?
- несколько технических терминов
Чем отличается процесс доступа к ресурсам cdn от доступа без cdn
Мы все знаем общий процесс, поэтому я не буду повторяться. Давайте посмотрим на процесс доступа к cdn.
1. Сначала получите доступ к локальному DNS.Если попадания нет, продолжайте рекурсивный или итеративный поиск, пока попадание не получит соответствующий IP-адрес. 2. После получения соответствующего IP-адреса сервер отправляет запрос на адрес назначения. Обратите внимание, что здесь возвращается не IP-адрес сервера CDN напрямую, а IP-адрес глобальной системы балансировки нагрузки. 4. Глобальная система балансировки нагрузки будет связываться с соответствующей региональной системой балансировки нагрузки в соответствии с IP-адресом клиента и запрошенным URL-адресом. 5. Региональная система балансировки нагрузки использует эти две вещи, чтобы получить адрес сервера cdn cache, который находится ближе всего к клиенту и имеет соответствующие ресурсы, и возвращает его глобальной системе балансировки нагрузки. 6. Система глобальной балансировки нагрузки возвращает клиенту адрес определенного сервера кэширования cdn. 7. Клиент запрашивает файл на кэш-сервереПроще говоря, CDN на самом деле является хранилищем серверных ресурсов. Если бы у дверей лапши быстрого приготовления Мастер Конга не было небольшого магазина, нам пришлось бы идти к дверям фабрики, чтобы получить ее. С магазином нам нужно только пойти в магазин, который продает акции Master Kong &&, это правда.
Один из наиболее важных моментов находится в процессе 1: в этом процессе есть процесс CNAME, Адрес, по которому мы обращаемся к ресурсам cdn, обычно a.cloud.com или аналогичный адрес, который является частным адресом компании для доступа к cdn. . . . Но сервисы CDN, которые мы используем, являются сторонними, то есть ресурсы находятся фактически по их адресам, например tencent.cdn. В это время нам нужно сопоставить адрес, к которому мы обращаемся a.cloud.com, с адресом Tencent.cdn при запросе dns, а затем взять сопоставленный адрес и снова пройти анализ dns, и только после успеха мы можем получить первый IP-адрес глобальной системы балансировки нагрузки, предоставленный третьей стороной. Продолжайте следующий процесс.
Что значит вернуться к истокам?
Когда в кэш-сервере cdn нет ресурса, соответствующего требованиям клиента, кэш-сервер будет запрашивать кэш-сервер верхнего уровня и так далее, пока он не будет получен. Наконец, если это все еще не так, он вернется на наш собственный сервер, чтобы получить ресурс. Когда он вернется к источнику? Ресурс отсутствует, срок действия ресурса истек, доступ к ресурсу не кэшируется и т. д. приведет к возврату к исходному коду. В других случаях приглашайте друзей, чтобы добавить их в область комментариев~
Помимо статических ресурсов, можно ли кэшировать API?
Обратите внимание, что описанная в заголовке ситуация не является динамическим ускорением cdn.
Объектом динамического ускорения являются динамически генерируемые веб-страницы.Динамическое ускорение обычно устанавливает высокоскоростной канал между пользователем и исходным сайтом для контента (например, информации из базы данных и т. д.) и ускоряет динамический контент с помощью технических средств, таких как оптимизация маршрута. и ускорение TCP.Уменьшите задержку между узлом и исходным сайтом, что значительно сократит задержку доступа пользователей к динамическим веб-страницам.
На самом деле, более адекватного ответа на этот вопрос я не нашел, и ниже хотелось бы высказать свое личное мнение. Причина, по которой мы используем cdn, заключается в том, что у нас часто есть файлы, которые запрашиваются чаще и имеют большую емкость, а также файлы, которые обновляются реже. Если мы размещаем эти файлы на собственном сервере, то проблема на стороне клиента заключается в том, что время доступа велико, а на стороне сервера занимает ресурсы серверной части. Так что кидаем его на CDN распределенным способом. Но API другой.Во-первых, он часто обновляется, а во-вторых, он в большей степени связан с пользовательской информацией, а cdn определяет, следует ли кешировать, опираясь на url, а значит, он может кэшировать только get-запросы, поэтому его приложение область применения ограничена. И API часто обновляется, и для отправки обновлений на все узлы cdn также требуются ресурсы. Таким образом, API не подходит для размещения в CDN. Но если ваш контент относительно статичен, не связан с информацией о пользователе и может допускать кэширование в течение определенного периода времени, а обновления происходят нечасто, то это вполне возможно.
Как определить истечение ресурсов? Как cdn обновляет данные?
Время истечения ресурса определяется в соответствии с заголовком запроса, о котором мы часто говорим. За этим последует отдельная статья для всеобщего ознакомления. Так как же cdn обновляет данные? Есть два типа: активный (PUSH) и пассивный (PULL). Пассивный Как мы только что упомянули, используя возврат к источнику, вы можете пассивно кэшировать данные на проходящих узлах CDN. Активный означает, что мы активно отправляем данные с сервера в CDN.
несколько технических терминов
Edge Node: относится к сетевому узлу с меньшим количеством промежуточных ссылок от конечного пользователя доступа
использованная литература:CDN учится немного думать Скорость попадания CDN, обратно к источнику часто задаваемых вопросов CDN кэширует эти вещи Пусть API тоже будет в CDN Основной рабочий процесс CDN Что такое CDN? Каковы преимущества использования CDN? Какая запись CNAME? В чем смысл его существования? Как работает CDN (CNAME) [Передовые практики CDN] Политика интерпретации и настройки политики кэширования CDN CDN кэширует эти вещи