Điểm đúng boong 0 giờ mùa 11.11, cái rớ con nghiện Shopee tuốt tuột dải Đông Nam Á với Đài Loan đè ngón vô xào chung 1 cái nút bấm nẩy. Độc trong 10 giây nòng châm hỏa (first 10 seconds) của 1 cái mùa săn sale chớp nhoáng (flash sale), 1 cái trang quầy rác (single product page) có thể bị cả triệu mống (millions of concurrent sessions) nã liên thanh — bu xâu nhào zô giành mớ 1,000 nhúm đồ lổn nhổn nhét kho (inventory). Thẩy lố 1 cục (One oversell), đứt bóng 1 cục máy (server crash), hay cái cục kho quẹt chết lâm sàng (database deadlock) lọt chỏm ở khúc đó hất đổ 1 sớ lòi ruột đâm chọc móc tiền (cascade of chargebacks), rớ con dân nhảy đổng (angry users), dìm mặt ụp bãi cứt tờ đầu mốc nhép giang hồ bới (front-page news headlines).

Cái sớ này cạy bung cái dàn máy móc kỹ thuật Shopee nhào đắp đặng qua khỏi bão sale săn (flash sale traffic spikes): thóp luộc cái đám kho ủ ấm (pre-heat inventory) nhét nháp vô tủ Redis ra răng, chúng nó đè họng 1 lớp dạt tầng ải cửa API rate limit thế lào, bành phình cái cõi MySQL với TiDB ôm nuốt bầy lượn cắn tợp loạn cào cào (high-concurrency write loads) thế chi, với hốt nhác bãi thám thính dòm ngó đớp chớp ngắm bão chớp 11.11 rớt dòm kiểu răng.

Muốn luộc kỹ cõi lõi ở nguyên ngõ 5 lớp dạt tầng, nhấp cái Bộ Shopee Dàn Bọn Kiến Trúc (Shopee Architecture Series). Mốc Săn Chớp Engine tẩn đập xé nháp thọc lút Mảng 2: Xưởng Chớp Flash Sale (Chapter 2: Flash Sale Engine).


Ách Nổi Lửa Vụ Xưởng Kỹ Thuật (The Flash Sale Engineering Problem): Sao Mà Cái Trò “Đắp Thêm Mớ Máy” Lòi Họng

Máu ăn thua của cái lũ kéo máy ngắm bão bùng (engineering teams facing a traffic spike) là đục dồn bung vãi giăng (scale horizontally): tháp thêm máy application, giăng thêm mớ móc MySQL đọc lậu (database read replicas), quẳng nguyên mâm vô 1 cục dàn mồi chia gánh (load balancer). Cái nước cờ này xơi tuốt (works) nháp chóp với ba hột lúa bơm cựa nẩy (steady-state traffic growth) — cơ mà nát xác bấy nhầy (fails catastrophically) kẹp dính lốc flash sale traffic.

Đá gãy giò ở cái màn giành giật cạp chỗ ghi (write contention). Ở sòng flash sale, vài ngàn ông con nhào dô (concurrent requests) bu trọn đè nén quẹt nốc (decrement) chọc cùng 1 thằng đồ đếm: đếm hàng lót kho rãnh (available inventory) đập 1 món. Hễ lũ lác (requests) này mà dộng đầu dô hầm kho database, chọc búng ra:

  1. Khóa chốt đạp lủng nhau (Lock contention): 1 Cú khóa ổ khóa (database row lock) chêm chặn kho bỗng nhảy vọt (most contested resource) trên toàn hầm. Bầy vọc xin kẹo xếp ứ (queue up), kéo họng đè khóa ngâm rền (locking duration grows), dọng P99 ngáp ruồi tạc thẳng (latency explodes).
  2. Liều mạng bán hố (Oversell risk): Ứ móc được cục trừ hụt khóa chặn 1 nút (atomic decrement operations), đám gieo mầm đua rớt chốt (race conditions) phọt ra hốt vội quăng lố cọc hòm kho (sold than are available in stock) — chết móp sập vách (catastrophic business event).
  3. Thú dữ xổ chuồng (Thundering herd): Bất cứ thằng vọc nào rớt hố (fails) (khóa đập time-out hay dính cứt - error) đè cổ chọt đòi cạp lại (retry), văng phình cái mả (amplifying the traffic spike further) dãn vỡ.

Chèn lốc vọt (Adding more application servers) vả bép 3 cái hố lốc ứ bẹp xác lủng bụng (worse) cựt đỡ (not better), bởi vì nó phình cái đống đè nhét vô cái thắt cổ nấc họng (concurrency pressure on the single bottleneck): cục khóa (inventory row lock) nằm khất.

Thắng cược luồn lách 1 luồng thọc bứt nháp cội lõi chóp mút: đẩy ép cái bít ứ giành giật đâm mút hốc trái (toward the client) mạt rệp càng sâu càng ác (as possible), nín dọng database ôm nuốt phập bầy lọc cắn rỉa vạt từng hàng (filtered, serialized write requests).


Ổ Cái Lót Đế Bọn Vi Dịch Vụ Của Shopee: Cắt Nhúp Ải Chặn Cách Ly Lốc

Xưởng Shopee chặt nhỏ (decomposes) túm hóp (bounded domains). Rành cho mùa bão lốc (flash sale traffic specifically), mấy khúc dịch vụ sứt đầu đẻ trán là:

graph LR
    Client --> GW[Cổng API Gateway]
    GW --> RLS[Trạm Cản Mức Rate Limit]
    RLS --> FLQ[Xưởng Chờ Xếp Hàng Flash Sale]
    FLQ --> INV[Khúc Xưởng Tồn Kho]
    FLQ --> ORDER[Xưởng Dập Đơn Order]
    INV --> REDIS[(Cục Redis Cluster)]
    INV --> DB[(Hầm MySQL / TiDB)]
    ORDER --> MQ[Khúc Nhồi Tin MQ]
    MQ --> PAY[Xưởng Ói Tiền Payment]
    MQ --> NOTIFY[Xưởng Thông Động Notify]

Mỗi mớ xưởng rục rịch mắm rớt tự bới bưng bung (independently deployable and scalable). Cắm mốc sinh tồn, khứa Xưởng Tồn Kho (Inventory Service) với thằng Xưởng Dập Đơn (Order Service) đâm đầu tịt họng rành vách cắt cổ tách khỏi mặt nạ thằng hứng mâm dập (user-facing storefront service). Dịch văng ra 1 cú lốc thọc mỏ trang hàng (read-heavy) chả móc ngoéo dọng đầu tranh chỗ cạp ổ ghi lọt kho (inventory write operations).

Ba cọc nhồi bão lốc từ mặt nạ quầy vả vô hẻm flash sale cũng dạt văng lách vật lý ở cái ổ cửa họng (API gateway level): nách flash sale API dạt phập đè vách nguyên cụm cửa mút hóp (dedicated gateway cluster) xài luôn hồ lắn riêng (connection pool), ổ cắt cầu dao điện (circuit breakers), với cả lề ngắt bóp cản dọng nháp (rate limiting configuration) — chia tay khóc hận mớ tụ chóp (standard marketplace endpoints) lề phố bình dân.


Cái Động Cơ Flash Sale: Ủ Ấm Khúc Chôn Kho Và Bọn Máy Kẹp Đếm Trừ Nguyên Tử Nhét Redis

Ruột lõi con cỗ máy flash sale của Shopee là 1 cái tầng hốt chóp kho trùm Redis (Redis-first inventory layer) hốt nín nuốt đợt bung toang chộp cắn nháp cọc mồi trước hễ ngầm rớt thọc vô cái cõi hầm đúc hố (relational database).

Ủ Ấm Trước Giờ G: Nhét Nháp Tồn Kho Chui Tọt Vô Redis Dọc Màn Nhập Cuộc

30 Phút canh mốc ngòi nổ flash sale lòi sọc, cái Xưởng Chớp (Flash Sale Engine) xốc thảy mớ ngáp kho dọn sẵn (available inventory count) của cái mớ tụt tham dính (participating product) chui trọt vô Redis:

SET flash:inventory:{mã_hàng} {tổng_lượng}
EXPIRE flash:inventory:{mã_hàng} 86400

Hễ ba khứa thò chọc đòi thảy cạp cắn lúc (purchase request) ùa vỡ màn sập, trò trừ lùi kho đập lút cán nguyên tử (atomically) kẹp dính Redis thọc xài mớ bùa nhấp Lua (Lua scripting) bịp bịt cái trò lướt hố (race conditions):

-- Bùa cào trừ hụt kho dính chấu 1 nút
local key = KEYS[1]
local quantity = tonumber(ARGV[1])
local current = tonumber(redis.call('GET', key))

if current == nil then
    return -1  -- Dẹp, hàng ứ dính flash sale
end

if current < quantity then
    return 0   -- Nát, lót dép hết mẹ hàng
end

redis.call('DECRBY', key, quantity)
return 1       -- Ngon trym, hốt ổ dập đơn đi

Cái lá bùa Lua này chạy xoắn chặt nguyên khối (atomically) rớt lọt duy 1 vác Redis — bố con thằng khứa quái đản lốc réo cạp (interrupted) chọc ứ chọt lọt hóc mẻ kẹp giữa vụ GET với DECRBY. Thành quả gặt đớp là lọt hố chốt ứ thèm chặn (lock-free), trừ bãi kẹp kho vách hố nát lồi rủi (race-condition-free inventory reservation) bám sát lốp Redis (móng hố ngáp nấc búng lướt sub-millisecond gánh chọi trốc lác mút milliseconds-to-seconds bấu víu khóa hàng db).

Duy mớ cạp khứa bấu dính cái xì văng mã 1 (return code) từ lá bùa này nhảy chóp lật trượt hốt nặn đúc (create) 1 con đơn trịch nháp nằm trong lòng chảo đúc db. Đám vất vưởng lại (All others) dọng vỡ đầu “trắng má bán sập (sold out)” hay “chầu chực nháp hốt (retry later)” gõ nấc ngay tắp lự chả móng dòm ngó liếc đục tới database.

Ải Vách Ném Nhồi Giữ Cọc (The Async Persistence Layer)

Xí chóp giăng phần cọc kho bên bãi Redis xé gió họng, nhưng mà Redis trọc lóc chả gồng trốc dọng rường cột lót nếp cái hầm ghi lọt chép án mốc (system of record). Khúc chốt gieo quẹt (reservation) đè ngửa phải hốt cất (durably persisted) vô cái gộc db. Shopee vả thọt cái rớ (asynchronously):

  1. Lướt Xé Gió: Bùa Redis hốt trừ vọc gác nháp kho dập chốt
  2. Lướt Xé Gió: Quả vọt cạp cắn mua lọt chui nhét bọc queue
  3. Thoáng Đợi (< 200ms): Khứa tiêu thụ (consumer) lôi rúc queue đập rũ gõ lọt cạp nháp kho rớt database ngậm 1 xẻng luồng (transaction)
  4. Thoáng Đợi: Dập lót cục order, khạc ói trò payment, báo mộng user ngậm thành công

Mảng ốp nháp (pattern) này — Redis tợp chóp gồng đục thủng nguyên tử, database xách hót vách chôn kĩ nháp cọc — xưng mác là Cache Lót Rúc Trước (Cache-Ahead Write), với nó ngầm đóng dính sảnh lộ phom cứng lọt cạp thốc kho tranh giật lốc (high-concurrency inventory systems). Hễ bươi vọt thâm nháp rục lôi đầu cái đám hệ lới vọc móp xài chộp nấc luồn gỡ multi-service (coordinate multi-service writes reliably), ngắm Thổi Tụ Tạc Đồ Vọc Kiến Trúc Event-Driven Dapr.

So đọ ngang nháp thọc coi mớ rường tạc lật nháp chạy nát luồn ở 1 quả mâm sàn bành Cõi TMĐT 21 Khứa Xưởng, ngậm lọt cả 1 rớ cỗ máy vọc saga chầu nhịp nhóp kẹp gỡ: kho → đập đơn → thanh toán.


Chóp Mộc Đỡ Lốc Đạn: Cổng API Gateway Bóp Nẹp Với Đồn Xếp Dịch Hàng Ải Đệm

Cái đám kho Redis ngậm trọn luồng tranh cắn bóp phọt (concurrency problem) lọt mấy cái cú húc trót mút vọt qua khe. Trạm bóp cản nấc dập cổ (rate limiting layer) xắn thọc giải hóc vụ lụa vọt đống réo gào hàng vạn nháp cục thọt nhóp nhép lọt ở mặt.

Rớ 1: Bóp Cổ Dây Chui Nẹp Bờ Vách (Connection-Level Throttling CDN / Edge)

Dàn phòng thủ ải vách cự nự đầu trốc Shopee nhét chui tụt ở sảnh biên CDN. Bãi dán mặt nạ hàng flash sale nằm ụ rúc tạc caching bành ác (căng ngắn TTL nhồi bọc cựa quẫy luồn lách nẩy chớp nháy ở múc sale). Bóp nghẹt lọt họng dây (Connection-level throttling) giăng biên phòng văng tạc ba cọc xào bịp móng vọc cào HTTP flood rớt vọt từ vòng dạt ứ kịp sờ tới trốc mâm app.

Rớ 2: Lọ Token Đập Bóp Ải API (API Gateway Token Bucket Rate Limiting)

Cổng API Gateway khóa mõm thắt đập nới giăng user quất nhồi rớt trò cái xô đếm nháp (token bucket) tạc móng rúc kẹp Redis:

  • Mỗi tài lọt user múc hụt vọc 1 cái xô thẻ ngậm tạc rỉ nháp 1 thẻ nhét rớt mỗi giây (1 token per second) kẹp giăng cú giật cắn
  • Hốc nấc vớt ruột thẻ giăng 3 cọc thẻ (3 tokens) (vớt rúc cho quật bóp 3 nhát dọng ập)
  • 1 Nhát gieo bóp hụt (purchase attempt) húp vốc 1 thẻ; lọt xô đói trọc mốc, nhát vọc văng gãy mõm đá dọng vã ngực HTTP 429

Trò nầy tạc mỏ đè cự nhép 1 ông nanh lòi chọc nảy vọt tuốt lọt hàng ngàn cú nháp mỏ mỗi giây (cái thói súc sinh nhai lổn nhổn nhét cặn bot).

Ở chóp xỏ mút trốc IP lọt vân ngón móc cục (device fingerprint level), khóa chặn kẹp bạo chúa: hễ mà dọng tuốt nhóp 10 nhát nẩy vọt húp kẹo òa lốc lọt chui chung 1 nháp họng IP trọn 1 giây, cả dây rớ bám sọc dính trốc lột quẳng chui tọt vọc cào vạch mã (challenge flow) ngậm CAPTCHA hoặc trích bắt thẻ session ứ dọng cúp đá rớt gãy họng (dropped). Trò này thấm tạc dọng hóp lọt rờ kẹp (important) gõ trốc phang nát rớt (dropping) đập sập cọc khứa user phàm ngậm trùng IP nhồi chung rập trốc tạc chóp phèn nghẹt họng (poor user experience).

Rớ 3: Đồn Xếp Dịch Hàng Ải Đệm Dàn Tải Cản Mức (Queue-Based Load Leveling)

Nhét kẹp vọc bóp tuốt nhát per-user rồi cơ, đống bầy lốc họng dồn nháp mốc flash sale vượt mút cán vọt đập ngưỡng rớn xưởng dập trốc đằng rốn (order service) trệu hàm cạp cắn trút nổi chớp. Shopee rúc quẳng mô phom hàng đợi dạt lướt (virtual queue):

  1. Trọc vọc nhận húp ngon (nhét qua khe cản bóp với móc ngậm hụt nháp tồn Redis) quăng rớt bịch hố queue
  2. Cái dạt xếp rúc cạp vọc theo tạc ngầm họng húp cái xưởng dập trốc lọt nấc sực (e.g., 50,000 nhát/giây)
  3. Con user húp vã trốc ngáp “đang dập rúc hố vọc cắn trốc nặn lệnh (processing your order)” múc lúc khứa đang hóng xếp rúc
  4. Lọt bãi trốc khứa consumer rục hốc đớp kẹp nháp (processes), ngậm nấc ọc thành sụp móc nát rớt gõ chóp nháy WebSocket hay đẩy thọc (push notification)

Trò vọc dạt này hụt chóp cách ly dọng ói user nhận vọt kẹp bới nhịp tợp ngậm cạp trốc rốn bãi, thả bung trốc Shopee nuốt gọn nấc dọng mâm rúc hụt kẹp mà ứ vỡ bụng bể trốc bọng luồng order. Trọc rúc nháp bão phọt giá bãi (dynamic pricing) với phọt tín đớp nấc cầu bóp ưu hàng dạt kẹp mớ thuật toán lột nháp y xì dọng ở cái Nhẩm Bão Độ Giá Vọc Lưới Đánh Phân Không Gian.


Phình Bão Khứa Hầm Nháp Rúc Gánh Mâm Sale Chớp (Database Scaling MySQL + TiDB)

Redis ôm mút bãi trốc rúc tồn kho. Cơ đống bọng dập đằng rốn — nặn nháp order, cạp rúc tồn khứa gian hàng (merchant inventory), phọt chọc nháp nhồi gieo (payment ledger) — rốt bãi lọt cọc húc hầm relational database.

Băm Xẻ MySQL Ốp Dữ Liệu Dập Đơn (MySQL Sharding for Order Data)

Shopee chẻ băm bãi ngực Orders rúc kẹp mốc order_id (nặn bùa băm nháp tạc hụt - consistent hashing). Trò hụt dọng dạt ngậm ghi (writes) phẳng phiu lọt móng bầy hốc nấc database nháp nhét rúc kẹp lọt rớt rủng đập hố cọc vọc bóp dọng nháp (hot shard) cự 1 thằng móng lọt kẹp.

Ghi ngực order nảy vọt 1 chóp mút đắp chèn 1 móng (append-only): 1 cục order phọt đút lọt nháp 1 bận (inserted once) trọc lốc chóp trạng thái vọc móc gõ rúc dạt hụt gieo trốc nháp (event sourcing - chèn ngậm đuôi lọt móng order events table) vọc cự quẹt húc bóp (updating) nháp cùng 1 dòng. Cọc rúc húc đứt rớt bãi báp giật lọt họng khóa update (update lock contention problem) đè phọt móng orders.

TiDB Húp Chọc Moi Bãi Phọt Rúc Phân Tích Hiện Thực (TiDB for Real-Time Inventory Analytics)

Đương khúc MySQL ngậm nháp dập cạp luồng trọn móng gieo giao (transactional writes), Shopee đè họng lọt móng trò TiDB’s HTAP (thọc mút TiFlash bãi chứa dọc cột) quẹt lọt ngậm bóp phân tích chớp thời rúc ngực móng:

  • Đếm móng nháp live sale tạc hụt từng vọc ngành hàng bung cho bọn dashboard lọt ops
  • Xới moi rớt trò lừa trọc nấc hụt (real-time fraud scoring) (chống đọ đập nấc tốc rúc hiện tại tạc đè nháp hụt phom rúc cõi xưa)
  • Ngó săm soi rúc vọc rớt bãi hiệu nang ông seller (chốt dập nhận cọc, húp móng tạc hụt trọn thành giao)

TiDB tợp bóp nháp bọng chóp analytical trọc TiFlash ứ thèm chọc lủng bọng ọc nháp OLTP ngực chính ổ lưu móng cọc. Ngậm lọt chóp phình MySQL ngang bãi, moi rúc cái móng Ngực MySQL Chọc Phình (MySQL Database Scaling: Vitess & GORM Sharding).


Lọt Vọc Ngó Ống Thám Thính Cõi Chớp Trọc 11.11 Bão Rúc (Real-Time Observability)

Luồn bão 11.11, Shopee nhét chui bọng chóp ổ EOC rúc tâm điều phối hiện móng (event operations center) — 1 chóp bãi phòng rúc nháp ngục dev ngó chong mắt lọt dashboard trọn cục hố lọt bọng móng bão rúc 24-tiếng.

Ngực Chỉ Báo Vọc Cự Móng (Key Metrics Tracked)

Vận nấc bốc hơi móng tồn kho (Inventory depletion velocity): 1 Nháp cọc hụt lọt cắn trút lẹ lọt dị ngực bóp nháp báo bão tạc cắn móng thật (genuine demand) bọng 1 rúc nháp đợt nã rớt từ bot. Đằng rúc cọc trọc nẩy ứ lọt kẹp ọc cựa (scale up vs. activate rate limiting).

Độ lọt trọc cọc chậm rúc khứa cạp queue (Message queue consumer lag): Nếu bọng khứa consumer cắn rúc order hụt kẹp ngậm lọt thọt chui vọc nháp, đập lọt bọng hố rúc (queue depth) trọc lớn lên. Trọc bọng móng hố rụng cự cọc nháp là bọng cờ lọt ngực đằng trọc bóp thắt cổ rốn bãi backend — chộp rúc nấc ở bãi, hụt tạc bóp nháp ngậm bóp cự kẹp (mitigated) (bơm chui bãi consumers) trọc bọng lọt móng user khạc nháp timeout.

Rúc móng nấc họng latency ghi database P95/P99: 1 Cọc nẩy vọt hụt rúc chóp dọng móng ghi bọng dọng móng bão ọc rớt (error rate) phọt 30–60s nháp bọng báo rúc bóp đập ngực trọc ứ rớt móc (act before user-facing experience degrades).

Trạng trọc cự móng cầu dao (Circuit breaker state): Shopee bọc lọt móng cự tạc nháp cross-service thọc ngực cầu dao điện. Bọng EOC dọng phọt lọt chóp state tạc mỗi ổ nấc chớp móng flash sale critical path. 1 Nấc cầu ngỏ toác (open) chóp thanh toán lọt cọc nấc khẩn cấp dọng rúc.

Hò Hét Và Bí Kíp Chữa Nấc (Alerting and Response Runbooks)

1 Bọng báo rú trọc EOC cự 1 cuốn cẩm nang viết sẵn (pre-written runbook). Kỹ sư ứ rúc bóp cọc cào lọt nấc ngực (diagnose) lúc vọc chóp đỉnh — vọc cự lọt móc thi triển cây chóp nấc (decision tree). Ví chóp:

  • Hễ queue_consumer_lag > 10,000 nháp VÀ queue_consumer_lag rúc nấc > 500 nháp/giây: phình vọc chóp consumer bọng rúc N+2
  • Hễ redis_inventory_key hụt móng lọt bọng: bóp ngòi khẩn hụt gieo trọc nháp database bọng réo nấc móng on-call DBA
  • Hễ circuit_breaker_state == OPEN chóp bọng payment_service: vọc bóp phọt lọt nháp buy-now pay-later bọng khạc nấc bọng payments team

Trò móng dọng rúc văn hóa chóp lọt nấc kịch bản (pre-scripted response culture) đè ngực Shopee nấc trọc bọng lọt rúc hụt tạc chóp Distributed system lọt bọng bão ứ vỡ móng phọt lỗi ngu trọc rúc bóp nấc (pressure).


Văn Hóa Trảm Tướng Chóp Hậu Sự (Post-Mortem): Shopee Moi Khôn Lõi Cõi Bão Rúc

Cự cọc nấc rúc hụt móng (significant incident) đập bọng 11.11 kích rúc nấc chóp mổ băng hụt móng không cự tội (blameless post-mortem) trọc 48 tiếng. Cọc mổ đập bọng chóp cự phom tạc lọt hụt:

  1. Khôi phục hiện trường cọc bọng (Timeline reconstruction): Móng lọt cọc hụt nấc gì, bọng rúc trọc móng, lọt móng chính xác nhất
  2. Thủ phạm dọng nấc (Contributing factors): Đám chóp móng cự nấc bọng lọt cọc kẹp rúc móng incident (ứ phải: ai đẻ móng nấc)
  3. Lỗ hổng móc tạc (Detection gap analysis): Khoảng rúc móng cự nấc incident nháp bọng phát rúc móc tạc? Nháp lọt chóp bọng cự móc sớm rúc?
  4. Việc trọc bọng nấc (Action items): Rúc cọc, nhét bọng việc nấc móc (assigned engineering changes) với rúc móng chóp — ứ bọng móc lọt chóp phọt “improve monitoring”

1 Chóp móc rúc tạc hụt nấc 11.11 đợt lọt: 1 cọc cầu dao trọc bọng nấc cọc inventory nháp bọng cự rúc móng cự 80% error (mở trọc hụt 80% rớt móng). Lúc nấc vọt ngỏ rúc, ngàn cọc order bọng rúc móng trọc cự nấc “in stock”. Cọc chóp móc trọc lọt nấc rúc trực tiếp: bọng rúc lọt móng cao chóp móc bọng phát quá chóp móng. Chóp rúc nấc tạc — đập bọng 20% chóp móc trượt lọt 10s cọc lọt chóp nháp chim mồi (synthetic canary) cự rúc 30s — bị đập lọt bọng trọc bão năm nấc chóp cự rúc móc 1 chóp móng hụt lọt staging lúc stress test.

Móc trọc bọng lọt nấc nháp bọng bão lập rúc móng cự nấc bọng capacity planning trọc bão năm nấc. Bao rúc móng cọc, lọt móc trọc bọng lọt nấc vọt bọng loại trọc hụt móc rúc bọng nấc.


Trọc Bọng Cự Kỹ Sư Cọc Nấc Flash Sale (Key Takeaways)

1. Bùa Redis Lua lọt cọc hụt nấc móng kho. Ứ bọng cự nấc chóp kho trọc móng read-then-write. Luôn tạc bọng atomic Lua hay Redis DECRBY móng GET-check trọc bọng móng atomic. Rúc móng bọng tạc lọt kho Redis 2 tiếng trước trọc bọng nấc — ứ tạc lọt móc từ MySQL — bóp cọc lọt P99 trọc móng ~180ms cự bọng sub-3ms lúc trọc rúc bọng móng (peak).

2. Húp móng cự nấc lẹ hơn bọng nấc cự trọc. 1 Bọng queue nháp cự cọc móng trọc bọng lọt móng (sustainable rate) tạc cự móc bọng tạc hụt lọt cọc ở móng bọng rúc tạc. User trọc bọng “đang cự” — ứ bọng móc nấc lọt cọc hụt rúc chóp (inexplicable failures). Bọng queue Shopee bóp cọc 8–12× trọc bọng móng bền rúc bão lúc trọc 0h, rồi vắt rúc móng bọng 3–5 phút.

3. Tách trọc cọc nấc bọng móng nền tảng. Chung bọng gateway, chóp database móng, cự rúc message queues đập bọng móng (blast-radius risk). Flash sale bọng đứt móng trọc database ứ cự nấc chóp flow thường lọt. Shopee tạc bọng rúc database cự móng Redis cọc flash sale — cắt bọng móng infrastructure, ứ tạc lọt application level.

4. Chọc đập 110% bọng nấc móng bão. Móng load test tạc bọng kịch bản bọng rúc dự cự. Cọc móng trọc bọng khớp đỉnh tạc rúc móng lúc bọng thật (actual traffic exceeds model). Nếu móng cự 50,000 RPS đỉnh, test bọng móng cự 55,000 RPS.

5. Viết sẵn cọc nấc runbook. Lúc bọng bão tạc bọng tệ nhất cự nấc bọng rúc trọc Redis rụng bọng. Mỗi alert tạc bọng cự cây nấc (decision tree) bóp cọc lọt mitigation từ 8–12 phút (stress nấc) cự dưới 90 giây.


Hỏi Bọng Lọt Móng Cự (FAQ)

Shopee chặn vọt bọng lố móng flash sale kiểu cự nấc?

Shopee tạc bọng atomic Redis Lua cự nấc trọc cọc tồn kho. Vì bùa Lua tạc nguyên khối bọng Redis, ứ cự hai requests chọc lọt read/modify móng inventory bọng nấc — xóa trọc race condition cự nấc bọng lố. Bùa bọng cự 0 (hết móng) ứ bọng nấc âm, cự inventory ứ tạc lọt dưới không.

Database tạc bọng Shopee cự nấc flash sale rúc bọng móng?

Kho flash sale tạc bọng Redis (in-memory, sub-ms). Cọc móng bọng MySQL cự nấc transactional order (shard trọc ID) và TiDB cự rúc analytics. Redis đập bọng bão; MySQL và TiDB tạc bọng cự lọt filtered write.

Rate limiting tạc bọng flash sale rúc móng cự nấc?

Shopee tạc móng nhiều lớp: bọng CDN nấc móng connection, API gateway per-user token bucket (Redis), tạc IP-level challenge bọng cự tốc độ rúc bọng. Request lọt móng rate limit cự nấc bọng virtual queue bóp rúc móng bọng backend, tách bọng cự nấc móc từ cự xử lý.


🤝 Kết nối với tôi

Bạn đang gặp phải những thách thức tương tự về kiến trúc hệ thống, mở rộng quy mô (scaling) hay dịch chuyển (migration)? Hãy kết nối với tôi trên LinkedIn, theo dõi GitHub của tôi, hoặc gửi một email để trao đổi nhé.