Введение (анализ болевых точек)
Как архитектор или разработчик платформы электронной коммерции, испытываете ли вы любовь/ненависть к предстоящим крупным распродажам? Такие кампании, как секундные и ограниченные по времени распродажи, могут принести огромный трафик и продажи, но технические проблемы, стоящие за ними, могут вызывать головную боль:
- Мгновенное затопление потока.В момент начала события трафик системы возрастает в десятки и даже сотни раз по сравнению с обычным ровным состоянием, и традиционные кластеры фиксированных ресурсов мгновенно оказываются перегруженными, что приводит к недоступности сервисов.
- Затраты ресурсов и бездействие.Если вы круглый год поддерживаете кластер с высокой провизией, чтобы справиться с пиковыми нагрузками, большое количество вычислительных ресурсов простаивает в неактивные часы 99%, что приводит к огромной трате средств.
- Риск перепроданности запасов.В сценариях с высоким параллелизмом, когда несколько запросов одновременно запрашивают и вычитают один и тот же инвентарь, очень легко “перепродать” (продать больше, чем реально есть в наличии), что приводит к серьезным потерям капитала и жалобам клиентов.
Если вы пытаетесь решить, как плавно справиться со всплесками трафика и полностью устранить перепроданность запасов при меньших затратах, то в этой статье вы найдете комплексное бессерверное решение.
Диаграмма и обзор архитектуры решения
Следующая архитектурная схема наглядно демонстрирует основной состав и поток данных спайк-системы на базе AliCloud Serverless Application Engine (SAE).

Обзор архитектуры.
Сначала запрос пользователя проходит черезБалансировка нагрузки CLBиШлюз микросервисов MSEВыполняют распределение трафика и унифицированную аутентификацию. Основная бизнес-логика (например, секунды, заказы) развернута вБессерверный движок приложений SAEКроме того, SAE может очень быстро увеличивать емкость в течение 1 секунды в соответствии с количеством одновременных запросов в реальном времени, что позволяет легко справляться с пиками трафика, и автоматически сокращать ее до 0 после окончания события для достижения оптимальной стоимости.
Запрос на шип ключа поступает и сначала посещаетОблачная база данных Redis EditionВыполняет предварительное вычитание запасов, используя атомарные операции Redis для обеспечения точности инвентаризации. После успешного вычитания генерируется асинхронное сообщение о заказе, которое записывается в файлОчередь сообщений RocketMQСлужба последнего заказа в SAE потребляет сообщение и асинхронно завершает сброс базы данных, что значительно сокращает основную базу данныхRDSДавление
Ценностное предложение.Это решение решает проблемы стоимости ресурсов и пиковой стабильности за счет чрезвычайной эластичности SAE, а также принципиально устраняет перепродажу запасов благодаря схеме “атомарное вычитание Redis + асинхронная очередь сообщений”.
Основные продукты и компоненты
| название компонента | играть роль | Основные рекомендации по конфигурации/выбору | Почему стоит выбрать его |
|---|---|---|---|
| Механизм бессерверных приложений (SAE) | основной вычислительный механизмРазмещение микросервисных приложений, таких как логика спайков, сервисы заказов и многое другое. | Рекомендуется включитьэластичность по времени(расширяется перед началом мероприятия) иЭластичность индикатора(Динамическое масштабирование на основе показателей процессора/валюты). | Отсутствие необходимости управлять серверами, обеспечение эластичного масштабирования, поддержка сжатия до 0, оплата за использование, идеальное соответствие сценарию второго убийства. |
| Облачная база данных Redis Edition | Уровень кэша и центр вычитания запасов. Кэшируйте данные горячей точки, такие как детали продукта; поDECRОжидание атомарных команд для проведения инвентаризации во избежание перепродажи. | опцияна основе памятиТехнические характеристики гарантируют высокую производительность; рекомендуется включатьобъективизацияВ случае потери данных. | Обеспечение сверхвысокой производительности чтения/записи и атомарных операций с данными - ключ к решению проблемы высоко параллельной инвентаризации. |
| Очередь сообщений RocketMQ | Асинхронная развязка и снижение пиковой нагрузки. Преобразование успешных спайк-запросов в асинхронные сообщения о заказах для буферизации переходного трафика и защиты нижележащих баз данных. | Рекомендуемое использованиепоследовательное сообщениеГарантированная последовательность обработки заказов на один и тот же товар. | Высокая пропускная способность и высокая надежность, способность накапливать огромные сообщения, чтобы не потерять всплески запросов и повысить стабильность системы в целом. |
| Облачная база данных RDS MySQL | Сохранение окончательных данных. Хранит основные данные о продукте, информацию о конечном заказе и т.д. | опцияHigh Availability Edition(один основной и один резервный) и выбирайте характеристики в зависимости от масштаба работы. | Устранение проблем с эксплуатацией и обслуживанием базы данных, гарантия надежности данных, очереди сообщений для достижения максимальной согласованности. |
| Движок микросервисов MSE | Шлюз для микросервисов. Обеспечивает маршрутизацию, аутентификацию, ограничение потока, объединение и другие возможности, а также является единой точкой входа и барьером безопасности для системы. | Настройка для интерфейса шипаточное ограничение движенияЭто позволяет предотвратить перегрузку внутренних служб вредоносными запросами. | Повышение безопасности, стабильности и наблюдаемости системы, чтобы разработчики могли больше сосредоточиться на бизнес-логике. |
Краткое описание преимуществ программы
- 🚀 Секунды стойкости, никогда не падайте духом.SAE может завершить расширение экземпляров в течение 1 секунды, легко справляясь с миллионным параллелизмом, чтобы гарантировать, что сервис всегда будет в сети во время события.
- 💰 Оптимизация затрат, оплата по факту.Счета за услугу выставляются в соответствии с фактическим использованием ресурсов, а мощности автоматически сокращаются после окончания деятельности, что позволяет снизить стоимость ресурсов более чем на 70% по сравнению с традиционной архитектурой.
- 🛡️ Устранение перепродаж и защита от потерь капитала.Основанная на Redis атомарная операция выведения запасов, начиная с логического уровня, позволяет полностью решить проблему перепродажи, защитить интересы предприятий.
- 🔧 Свободный от операционной деятельности и ориентированный на бизнес.Полностью управляемые облачные предложения освобождают операционные команды от управления инфраструктурой и позволяют быстрее переходить к выполнению бизнес-функций.
Сценарии применения и применимые клиенты
- Основная сцена.На платформах электронной коммерции происходят мгновенные действия с высокой степенью параллелизма, такие как секунды, ограниченное время, дебют нового продукта, дождь из красных пакетов и так далее.
- Применимые характеристики клиента.
- Бизнес имеет значительные пики и спады и стремится к предельному использованию ресурсов и оптимизации затрат.
- Компания столкнулась с проблемой перепродажи запасов и требовала высокой степени согласованности данных.
- Команда разработчиков имеет ограниченный штат сотрудников и стремится свести к минимуму сложность операций с инфраструктурой.