[Concurrency] Event Ticketing System Design – 購票系統設計指南

Intro 設計要點 User 限制 在 User Base 系統中,驗證使用者購票資格後,應對該使用者的 status 資料列進行鎖定(row-level lock),以防止同一使用者在高併發情況下同時發起多個搶票請求,從而超過購票數量上限。 即時搶票模型 實際搶票操作可使用高效能且支援 ACID 的資料結構來實現,例如使用 Redis String 存庫存數量配合 DECR 指令取票,確保票數正確扣減。 Ticket Database 預載策略:活動開始前,可將 ticket 的 ID 或 Token 從 Database 導入 Redis (如使用 LIST 或 QUEUE 結構),使用者搶票時直接從 Redis 取票 (Popup)。 […]

[Kafka] Apache Kafka 指南

Intro Kafka – wikipedia 主要 API Producer API: 推送資料角色使用 Consumer API: 拉取資料角色使用。實作上是各語言透過 SDK 反覆呼叫 consume 請求,consumer 會向 broker request messages。 Connect API: 一般指 Kafka Connect 中的外部 Storage connector plugin 使用。 Admin API: Kafka admin 角色使用。可以設定 Topic, partition 等。 Kafka Connect […]