Вступ (аналіз проблем)​

Як архітектор або розробник електронної комерційної платформи, чи переживаєте ви щороку через акції та розпродажі? Коли пробиває північ, величезна кількість користувачів одночасно заходять на сайт, і ваша система стикається з такими серйозними проблемами, як:

  • -Піки трафіку, збої системи:Миттєвий трафік був у сто разів або навіть у тисячу разів більший, ніж зазвичай. Пул підключень до бази даних вичерпався, а показники CPU/IO на сервері зросли до 1001 ТП4Т, що призвело до зависання сторінок і збоїв у роботі сервера.
  • -Перепродаж і невідповідність даних:При високій пропускній здатності традиційна логіка зменшення запасів може легко призвести до проблем із паралелізмом, внаслідок чого запаси стають від'ємними (перепродаж), що серйозно шкодить репутації компанії та досвіду користувачів.
  • -Синхронне блокування, повільна реакція:Коли користувач розміщує замовлення, необхідно синхронно виконати кілька трудомістких операцій, таких як перевірка запасів, створення замовлення, ініціалізація платежу тощо. Блокування на будь-якому етапі призведе до перевищення часу очікування користувачем і збільшення показника відмов.

Якщо ви зараз працюєте надЯк спокійно, надійно і ефективно обробляти величезну кількість запитів під час розпродажів із обмеженим часом?Якщо ви зіткнетеся з подібними проблемами, рішення для асинхронної балансування навантаження на основі черги повідомлень Kafka від Tencent Cloud запропонує вам повноцінну та масштабовану кращу практику.

Архітектурна схема рішення та його опис

Основна ідея цього плану полягає в тому, що...\n​“Структуроване згладжування піків, асинхронна децентралізація”​Окремлюємо миттєві запити користувачів на розміщення замовлення від складної обробки бізнес-процесів на задньому плані. Використовуємо потужний буферний пул у вигляді черги повідомлень Kafka, що дозволяє згладжувати піки навантаження та забезпечувати стабільність основної системи.

Архітектурна схема:

Рішення Tencent Cloud CKafka для розподілених систем: асинхронна оптимізація пікових навантажень і легке оброблення сотень мільйонів замовлень у пік навантаження — 1 ТБ/1 ТБ.

Опис робочого процесу:

  1. Запит на доступ:Запит користувача на участь у розпродажі спочатку надходить через глобальну мережу акселерації, а потім розподіляється за допомогою балансування навантаження CLB між декількома передніми бізнес-серверами.
  2. Перевірка перед виконанням:Предфронтальний сервер (CVM/EKS) виконує такі легкі логічні операції, як перевірка прав користувача та параметрів, а також швидкий пошук залишків на складі за допомогою Redis. Після успішної перевірки інформація про замовлення передається у вигляді повідомлення.Негайно запишіть у CKafka.І швидко реагувати на запит користувача “У черзі”.
  3. Згладжування піків і заповнення долин:Кластер CKafka завдяки своїй високій пропускній здатності та здатності до персистування обробляє весь миттєвий трафік, забезпечуючи ідеальне згладжування піків трафіку.
  4. Асинхронне споживання:Хмарні функції SCF або еластичні мікросервіси TEM на нижньому рівні виступають у ролі споживачів, отримуючи повідомлення з Kafka з контрольованою швидкістю і плавно виконуючи такі операції із забезпечення кінцевої згодженості, як зняття коштів із запасу чи реєстрація замовлення.
  5. Тривалість даних: ​Після обробки результати записуються в хмарну базу даних (MySQL/CynosDB) і оновлюється стан кешу в Redis.

Детальний опис основних продуктів і компонентів.

КомпонентиІграти у рольКлючові рекомендації щодо конфігурації/вибору.Чому ви обрали його?
Стеж за новинами про CKafka у нашому Telegram-каналі.Буфер ядра системи.Він відіграє ключову роль у згладжуванні піків і зниження мінімумів, а також у розв'язанні проблем, пов'язаних із несинхронністю.Рекомендується вибратиВисокі стандарти.Гарантуйте пропускну здатність і швидкість передачі даних; кількість розділів має бути більшою за кількість споживачів, щоб підвищити здатність одночасного споживання даних.Він має високу пропускну здатність і масштабованість, сумісний з екосистемою Kafka, безперешкодно інтегрується з різними інструментами для великих даних і не вимагає обслуговування хостингових послуг.
Хмарний сервер CVM / Послуга еластичних контейнерів EKSОбробка логіки бізнес-процесів на передньому плані.Він відповідає за перевірку запитів, генерацію токенів і створення повідомлень.ПрийнятиОплата за кількістьМодель та аксесуариГрупа еластичної масштабованості (AS)Автоматичне масштабування вгору і вниз залежно від навантаження на процесор.Надання стабільних і надійних обчислювальних потужностей, а також еластична масштабованість забезпечують автоматичне регулювання ресурсів до і після розпродажів, що значно знижує витрати.
Хмарна база даних Redis.Кешування даних про гарячі точкиЗберігати запаси для блискавичних продажів, чорний список користувачів, обмеження частоти тощо.Виберіть.Тип пам'ятіСпецифікації,​Включити персистентність; Використовуйте скрипт Lua для забезпечення атомарного зменшення запасу.Операції з пам'яттю в однопотоковому режимі забезпечують високу продуктивність (більш ніж 100 000 запитів на секунду) і є ефективним інструментом для обробки великої кількості одночасних запитів і записів.
Хмарні функції SCFСпоживач асинхронних завданьВитягуємо повідомлення з Kafka та обробляємо основну логіку замовлення.Встановіть розумні обмеження.Кількість паралельних виконаньКількість повідомлень, оброблених пакетомЩоб уникнути надмірного навантаження на бази даних нижнього рівня.Драйвер подійАрхітектура без серверів автоматично розширює і звужує масштаб відповідно до об'єму повідомлень, забезпечуючи справжню оплату за фактичне використання та звільняючи від необхідності технічного обслуговування.
Хмарна база даних TencentDB для MySQL/TDSQL-CЗберігання остаточних даних.Зберігати інформацію про замовлення, товари тощо у перманентній формі.ПрийнятиВисокодоступна версіяНавітьКорпоративна версія Three NodesЗабезпечення узгодженості даних; рекомендується використовуватиРозділення читання та писання.Архітектура.ТDSQL-C (CynosDB) пропонує високу доступність і високу продуктивність баз даних, особливо підходить для сценаріїв із великою кількістю паралельних записів, і має відмінне співвідношення ціни та якості.
Балансування навантаження CLBОб'єднаний вхід для трафіку.\n Забезпечити розподіл трафіку та високу доступність.Виберіть.Високопродуктивна версія.Він підтримує величезну кількість одночасних підключень.Усуньте єдину точку відмови та забезпечте високу доступність рівня доступу.
Веб-додаток брандмауер WAFОхоронецьЗахист від атак типу CC, шахрайських замовлень тощо.КонфігураціяТочний захист від кібератак.Правила таПеревірка людини і машини.Стратегія, що передбачає попередню фільтрацію шкідливого трафіку.Він блокує більшість атак, перш ніж вони потрапляють до бізнес-системи, забезпечуючи чесність операцій та безпеку бізнесу.

Зведення переваг плану.

  • ⚡ Максимальний користувацький досвід:Користувачі вимагають швидкої реакції (в мілісекундах), без довгого очікування, без затримок системи та плавного процесу оформлення замовлення.
  • ?️ Висока доступність і стабільність системи:Завдяки розділенню задньої системи та піків трафіку, база даних і сервіс завжди працюють стабільно, що дозволяє повністю уникнути аварійних відмов через перевантаження.
  • Гнучке масштабування та оптимізація витрат: ​Всі компоненти можуть бути гнучко масштабовані, немає необхідності купувати великі обсяги ресурсів для пікових навантажень, що значно знижує витрати на ІТ-операції та технічне обслуговування.
  • ? Кінцева узгодженість даних:Завдяки черзі повідомлень і надійній логіці споживання, гарантується остаточна узгодженість даних про зменшення запасів і створення замовлень при високій продуктивності, що допомагає уникнути перепродажу.
  • ?️ Розділення архітектури, гнучкість і масштабованість:Області відповідальності кожного модулю чітко визначені, тому для розширення функціональності в майбутньому (наприклад, зарахування балів, повідомлення SMS) немає необхідності змінювати основний процес, достатньо просто додати нових споживачів.

Сценарії застосування та відповідні клієнти

  • Типовий сценарій:Секундні розпродажі на електронних комерційних платформах, таких як 618, Double 11 та Double 12; перші продажі нових товарів; а також придбання квитків на популярні заходи в системі бронювання квитків.
  • Для кого це підходить:
    • Всі інтернет-компанії, які стикаються з періодичними або передбачуваними піками трафіку.
    • Щоденна кількість переглядів сторінок перевищує мільйон, бізнес швидко розвивається, і для цього потрібна високоеластична архітектура електронної комерційної платформи.
    • Команда розробників, яка хоче перейти з власної системи розпродажів, яку важко підтримувати, на повністю керовану та високонадійну хмарну архітектуру.

Стосовні посилання

Тенцент Клауд Мессідж Квінел CKafka 1100TP4T сумісний з версіями Apache Kafka від 0.9.0 до 3.2.0.
Приклад моделі CVM від компанії Hengchi. Максимальне зниження витрат на обчислювальні потужності перевищує 451 ТП4Т.
Хмарна база даних Redis. Сумісний з протоколами Redis та Memcached.
Хмарні функції SCF від Tencent Cloud Безсерверне середовище виконання
Балансування навантаження в Tencent Cloud CLB Надання безпечного та швидкого сервісу розподілу трафіку на 4-7 рівнях.
Хмарний MySQL (TDSQL-C) 1000TP4T сумісний з MySQL.
Веб-захисник від T-Sec для веб-додатків Виявлення веб-атак на основі правил AI+.
Безкоштовне тестування продуктів Tencent Cloud. Безкоштовні пробні версії понад 60 хмарних продуктів.