Понимание архитектуры кэша в распределенных системах (часть 2)

задняя часть база данных Архитектура сервер
Понимание архитектуры кэша в распределенных системах (часть 2)
作者 陈彩华
文章转载交流请联系 caison@aliyun.com

Чтобы выполнить предыдущий«Понимание архитектуры кэша в распределенных системах (часть 1)», знакомит с соответствующими теориями кэширования в больших распределенных системах, общими компонентами кэширования и сценариями приложений.В этой статье в основном представлены общие проблемы и решения проектирования архитектуры кэширования, а также отраслевые примеры.

1 Архитектура иерархического кэша

2 Проблема сложности, вызванная кэшированием

Общие проблемы в основном включают

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

согласованность данных

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

Есть 3 распространенных сценария и решения проблемы:

数据一致性问题场景及解决

проникновение в кеш

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

основное решение:

  • Данные с пустым результатом также кешируются.Когда в ключе есть данные, очищаем кеш
  • Для ключа, который не должен существовать, используйте фильтр Блума, чтобы создать большое растровое изображение, и отфильтруйте растровое изображение при запросе.

Кэш Лавина

缓存雪崩

Высокая доступность кэша

Высокая доступность кэша зависит от фактического сценария. Не всем предприятиям требуется высокая доступность кэша. Решение необходимо разрабатывать в сочетании с конкретным бизнесом и конкретными обстоятельствами, например, влияет ли критическая точка на серверную часть. база данных.

основное решение:

  • Распределенный: реализовать массивный кеш данных
  • Репликация: высокая доступность кэшированных узлов данных

точка доступа к кешу

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

решать: копирование нескольких копий кеша, распределение запросов на несколько серверов кеша и снижение нагрузки на один сервер кеша, вызванной горячими точками кеша.

3 отраслевых кейса

Дело в основном касается Сины Вейбо Чен Бо.обмен технологиями

технические проблемы

技术挑战

Схема архитектуры кэша фидов

Feed缓存架构

Архитектурные особенности

Sina Weibo применяет SSD в сценариях распределенного кэша, расширяя традиционный метод Redis/MC + Mysql до метода Redis/MC + SSD Cache + Mysql, используя SSD Cache в качестве кэша L2, что в первую очередь снижает стоимость MC/Redis Проблема слишком высокой а небольшая емкость также решает проблемы с доступом к базе данных, вызванные проникновением в БД.

В основном оптимизированы и улучшены в различных аспектах, таких как архитектура данных, производительность, стоимость хранения и сервис-ориентированность.

架构关注点

Более интересно, добро пожаловать на официальный аккаунт автора [архитектура распределенной системы]

Ссылаться на

Изучаем архитектуру с нуля - Alibaba Ли Юньхуа

36 лекций по технологии Java Core — Oracle Yang Xiaofeng

Практика проектирования архитектуры кэша Weibo — Чен Бо

Лучшее применение кэша в больших распределенных системах — Хоу Чжунхао

Кэш, большая яма одновременных обновлений? —— 58 Шэнь Цзянь

Дизайн распределенного кэша — crossoverJie