TechPartner

← Quay lại Blog
Khóa học System Design cơ bản — thiết kế hệ thống scale 1 → 1 triệu user · Phần 7 / 10

Message queue (7/10): Kafka/SQS & tách service ~500K user

Event-driven system design: Kafka hoặc SQS, redirect service, analytics consumer, idempotency, DLQ — không block redirect khi ghi click.

· 1 min read

Khóa học System Design cơ bản — thiết kế hệ thống scale 1 → 1 triệu user · Phần 7/10
  1. 1Nền tảng metric & CAP
  2. 2Monolith 1 server
  3. 3Tách DB & vận hành
  4. 4Redis + CDN
  5. 5Read replica
  6. 6Load balancer
  7. 7Message queue
  8. 8Sharding & đa vùng
  9. 9Phỏng vấn & cheat sheet
  10. 10Capstone ShortLink
Mục lục
  1. Mục tiêu phần 7
  2. Tách theo workload
  3. Delivery semantics
  4. DLQ
  5. Backpressure
  6. Bài tập
Redirect svcLink APIAnalyticsRedisMessage queue (Kafka / SQS)OLAP (ClickHouse / BQ)
Giai đoạn ~500.000 người dùng: queue và tách service theo workload.

Mục tiêu phần 7

~500.000 user: ghi click và analytics không được block redirect — message queue, tách Redirect / Link API / Analytics.


Tách theo workload

Service Nhiệm vụ
Link API CRUD, auth
Redirect Chỉ cache + redirect + publish event
Analytics Consume click.events
Redirect → publish {event_id, slug, ts, ua}
         → Queue → N consumers → OLAP

Delivery semantics

At-least-once + idempotent consumer (insert event_id unique).

DLQ

Message fail 5 lần → DLQ → alert on-call.

Backpressure

Queue depth > threshold → scale consumer; nếu OLAP chậm, không block redirect.

Bài tập

1M event/ngày — retention queue bao lâu nếu consumer down 2h?


Điều hướng seri: ← Phần 6 · Phần 8 →

Câu hỏi thường gặp

Phần 7 tập trung vào quy mô nào?

Event-driven system design: Kafka hoặc SQS, redirect service, analytics consumer, idempotency, DLQ — không block redirect khi ghi click.

Startup của bạn cần tech partner?

Trao đổi miễn phí về MVP, timeline và mô hình chia lợi nhuận phù hợp.