Вступ (аналіз проблем)
Як архітектор або розробник електронної комерційної платформи, чи ви коли-небудь не могли спати напередодні акції “блискавка” або “глобальна розпродаж”? Коли мільйони користувачів одночасно натискають кнопку “Купити зараз”, чи стикається ваша система з такими серйозними проблемами?
- Зростання навантаження на базу даних:Інформація про популярні товари та запити на перевірку запасів миттєво перевантажили базу даних, що призвело до обвалу сервісу.
- Проблема надлишкових запасів:У розподіленому середовищі традиційні транзакційні замки баз даних мають низьку продуктивність, що легко призводить до помилок при зменшенні запасів, виникненню “перепродажу” та, як наслідок, до збитків і скарг клієнтів.
- Відповідь надзвичайно повільна:Користувацька сторінка зависає, завантажується безкінечно, запит на замовлення довго не отримує відповіді, що в кінцевому підсумку призводить до поганого досвіду користування та провалу заходу.
- Атаки зловмисних запитів:Білети, продані нелегально, та інструменти для штучного підвищення рейтингу забирають ресурси звичайних користувачів і порушують чесність заходів.
Якщо вас турбують проблеми зі стабільністю системи, узгодженістю даних і досвідом користувачів, викликані високою продуктивністю під час розпродажів, ця стаття надасть вам перевірене і повне рішення на основі кращих практик Alibaba Cloud.
Архітектурна схема рішення та його опис
Наступна діаграма чітко демонструє, як за допомогою продуктів Alibaba Cloud можна створити надійну архітектуру системи для проведення розпродажів із обмеженим часом:

Основна ідея дизайну цієї програми полягає в тому, що...“Структуроване перехоплення, асинхронність, кінцева згода”。
Робочий процес (Workflow):
- Шар доступу до трафіку та захисту: Користувач спочатку надсилає запит черезАкселерація безпеки на периметрі (ESA)абоCDNШвидко поверніться до ресурсів статичної сторінки, а потім перейдіть через...Веб-додатковий брандмауер (WAF)Очищення шкідливого трафіку.
- Бізнес-логічний рівень:\n Чистий трафік проходить через Балансування навантаження (SLB)Надсилання на безстановий сервер додатків (ECSабоФункціональне обчислення FC(…), проводити базову перевірку особистості користувача, його права на участь у розпродажах тощо.
- Основний кеш і рівень вирахування:Після перевірки кваліфікації сервер викликає Lua-скрипт.Хмарна база даних Tair/Redis EditionВиконуйте пошук запасів та автоматичне списання атомно, записуйте стан покупки користувача і миттєво повертайте результати.
- Асинхронний рівень обробки замовлень:Запит на успішне здійснення вирахування податку був надісланий у вигляді повідомлення.Версія RocketMQ для обміну повідомленнямиЦе дозволяє зменшити пікове навантаження на трафік. Нижчерозташовані сервіси асинхронно обробляють повідомлення, виконуючи такі трудомісткі операції, як створення замовлення та персистизація даних у базі даних.
- Шар персистенції даних:\n Хмарна база даних RDS версія MySQLяк кінцеве сховище даних, використовуючи його для цьогоПорада щодо інвентаряЦя функція ефективно обробляє оновлення записів із високою частотою та забезпечує остаточну узгодженість із Redis.
- Моніторинг усієї мережі:\n Послуга моніторингу додатків у режимі реального часу (ARMS)З самого початку і до кінця, це забезпечує повний огляд продуктивності всієї мережі, допомагаючи швидко виявляти вузькі місця.
Ціннісна пропозиція:Цей підхід дозволяє повністю вирішити проблему, описану у вступі, завдяки тому, що запити на читання та операції зі зменшення запасів у системі 99% обробляються на рівні кешування, а лише невелика кількість успішних запитів надходить до бази даних. Це дає змогу обробляти десятки тисяч запитів на розпродаж за секунду або навіть сотні тисяч запитів.
Детальний опис основних продуктів і компонентів.
| Компоненти | Іграти у роль | Ключові рекомендації щодо конфігурації/вибору. | Чому ви обрали його? |
|---|---|---|---|
| Хмарна база даних Tair/Redis Edition | Центральний вузол системи.Прийняти на себе відповідальність: 1. Кешування даних про гарячі точкиЗберігаємо деталі товару у кеші. 2. Знижка на запасичерез DECR或LuaСкрипт зменшує запаси.3. Просимо обмежити трафік.через INCRРеалізувати обмеження потоку на рівні користувача/IP-адреси.4. Маркери стану:使用 SETNXМаркує, що користувач зробив замовлення, щоб уникнути повторних покупок. | - Вибір моделі.ВиберітьТип пам'яті或Інтегральна пам'ятьНаприклад, пріоритет віддається продуктивності. - Конфігурація: ВключитиПостійність(AOF), що запобігає втраті даних після перезавантаження. - АрхітектураНу, я не знаю. Я просто хочу спробувати.Кластерна версія.Архітектура, яка легко розширює продуктивність. | Він забезпечує надвисоку пропускну здатність і атомні операції, продуктивність яких набагато вища, ніж у баз даних. Версія Alibaba Cloud пропонуєСпалах даних、Безперешкодне масштабуваннята інші передові функції, а також просте обслуговування та експлуатація. |
| Версія RocketMQ для обміну повідомленнями | “Системні ”водоскиди“ та ”буферні зони"Прийняти на себе відповідальність: Зниження пікового навантаження на мережу.Перетворюйте митні запити на синхронні замовлення в асинхронні повідомлення і надсилайте їх до сервісу обробки замовлень, щоб уникнути перевантаження сервісу. | - Вибір моделі.ВиберітьКластерна версія.Щоб забезпечити високу доступність. - КонфігураціяСтворитиПорядок повідомленьТема: забезпечення порядковості замовлень на одну й ту саму продукцію. | Має високу пропускну здатність і надійну можливість накопичення повідомлень, а також підтримуєТранзакційні повідомленняЗабезпечення кінцевої узгодженості бізнес-логіки — ідеальний варіант для асинхронної декоуплікації. |
| Хмарна база даних RDS версія MySQL | “Фінальний сейф даних” системи.Прийняти на себе відповідальність: Зрештою дані зберігаються надовго.Отримуйте інформацію про замовлення від асинхронного працівника та виконуйте остаточні операції, такі як зменшення запасів і створення замовлення. | - Функціональні можливостіЯ настійно рекомендую користуватися ним.Порада щодо інвентаряФункція, яка забезпечує багаторазове підвищення продуктивності при одночасній оновленні запасів у великих обсягах. - АрхітектураНу, я не знаю. Я просто хочу спробувати.Високодоступна версія(Розгортання в декількох доступних зонах) забезпечує надійність. | Як зріла і стабільна реляційна база даних, вона гарантує дотримання властивостей ACID для даних. Функція Inventory Hint розроблена спеціально для цього.Сцена блискавичної розпродажу.Оптимізація, вирішення останньої проблеми з продуктивністю. |
| Акселерація безпеки на периметрі (ESA) / CDN | Перший бар'єр системи.Прийняти на себе відповідальність: Акселерація та захист.Зберігаючи статичні ресурси (HTML, CSS, JS, зображення) активної сторінки у кеші, ми перехоплюємо більшість запитів користувачів на крайових вузлах, що значно знижує навантаження на основний сервер. | - КонфігураціяНалаштуйте розумний термін закінчення дії кешування та проведіть тестування сторінки із розпродажем.Розігрівання和Оновити。 | Глобальна мережа вузлів забезпечує реакцію протягом декількох мілісекунд і інтегрований захист від DDoS-атак, покращуючи досвід користувачів і забезпечуючи при цьому безпеку. |
| Веб-додатковий брандмауер (WAF) | “Безпечний захисник” системи.Прийняти на себе відповідальність: Антиспам і фільтраціяТочно виявляти та блокувати шкідливі запити, такі як бот-атаки, атаки на основі перехоплення даних (CC) та SQL-інжекції, забезпечуючи чесність проведення заходів і безпеку бізнесу. | - КонфігураціяАктиваціяПеревірка людини і машини.、Захист від кіберзлочинності、Налаштований точний контроль доступу.Правила передбачають обмеження доступу до URL-адреси, яка використовується для розпродажу товару за дуже низькою ціною. | Немає необхідності змінювати бізнес-код, щоб забезпечити всебічний захист веб-додатків для бізнесу та легко протистояти викликам з боку кіберзлочинців. |
| Послуга моніторингу додатків у режимі реального часу (ARMS) | “Панорамний монітор” системи.Прийняти на себе відповідальність: Повна прозорість усієї мережевої інфраструктури.Контролюйте кожен запит від переднього API до заднього Redis, MQ, DB, щоб швидко виявляти проблеми з продуктивністю та аномалії. | - КонфігураціяСтворити налаштування для основних інтерфейсів, команд Redis та стану черги MQ.Бізнес-кон'юнктура和Правила виклику поліції.。 | Надання можливості моніторингу продуктивності від початку до кінця, що допомагає швидко виявляти та усувати неполадки в складних розподілених системах. |
Зведення переваг плану.
- ⚡ Максимальна продуктивність і миттєва реакція:Операції з пам'яттю в Redis та асинхронна архітектура дозволяють легко обробляти мільйони запитів на секунду, забезпечуючи безперешкодну роботу для користувачів під час оформлення замовлення.
- ?️ Надійні дані, що дозволяють уникнути перепродажу:Атомарні операції Redis + скрипти Lua гарантують точне зарахування коштів, а поєднання транзакцій RDS і підказок інвентаризації забезпечує остаточну узгодженість інвентаризації і виключає перевищення ліміту продажів.
- ?️ Зниження пікового навантаження та стабільність системи: RocketMQ забезпечує асинхронну декоуплікацію, ефективно захищаючи від миттєвих піків трафіку і забезпечуючи безперешкодну роботу нижніх рівнів баз даних і сервісів.
- ? Безпечна відповідність вимогам, справедливість і надійність: За допомогою таких засобів, як WAF і захист від DDoS, ми створюємо тривимірну систему захисту від краю до хмари, ефективно виявляючи та блокуючи шкідливі запити, забезпечуючи чесність проведення заходів.
- Гнучке масштабування та оптимізація витрат: Всі основні продукти підтримують еластичне масштабування за потреби, а також можуть бути зменшені після завершення заходу, що допомагає ефективно контролювати витрати.
Сценарії застосування та відповідні клієнти
- Сценарій застосування:
- Великий розпродаж у сфері електронної комерції:Наприклад, купівля популярних товарів під час таких розпродажів, як “День холостяка” або “618”.
- Обмежений тираж:Наприклад, випуск нових моделей телефонів, обмеженої серії кросівок або квитків на концерти.
- Періодично захоплюйте купони:Це захід із періодичним отриманням купонів та червоних конвертів на платформі.
- Для кого це підходить:
- Всі електронні комерційні платформи, онлайн-освіта, системи продажу квитків тощо, які стикаються з високим рівнем одночасних запитів на покупки.
- Максимальний обсяг трафіку значно відрізняється від повсякдене трафіку, і клієнтам потрібні еластичні ресурси для його обробки.
- Клієнти, які висувають високі вимоги до узгодженості даних і не можуть миритися з явищем надлишкових продажів.
Стосовні посилання
- Посилання на офіційний сайт продукту:
- Хмарна база даних Tair/Redis. Дізнайтеся більше про неї.
- Версія RocketMQ для обміну повідомленнями. Дізнайтеся більше про неї.
- Хмарна база даних RDS MySQL Edition. Дізнайтеся більше про неї.
- Акселерація безпеки на периметрі (ESA), детальніше про неї
- Веб-додатковий брандмауер (WAF), детальніше про який можна дізнатися тут:
- Служба моніторингу додатків у реальному часі (ARMS). Дізнайтеся більше про неї.
- Обчислення функцій FC, детальніше про це можна дізнатися тут
- ДДОС високого захисту (міжнародний)丨 Захист від DDoS-атак (новий BGP)
- Посилання на безкоштовну пробну версію: Негайно спробуйте продукти Alibaba Cloud безкоштовно.
- Посилання на технічний підручник: Створення системи блискавичних продажів за допомогою Redis і RocketMQ.
- Посилання на рішення: Дізнайтеся більше про рішення для електронної комерції.