這個案例的核心責任是說明 RabbitMQ 也能做「per-key ordering」、用 consistent hash exchange 模擬 partition。

觀察

訊息順序對某些業務流程關鍵、但全局排序代價高。WeWork 採固定數量 queue + 用 account ID hash 路由到特定 queue。

判讀

每個 queue 一個 SideKiq worker + exclusive consumer 保證單帳戶順序。文後發現 RabbitMQ Consistent Hashing plugin 已內建類似機制(類似 Kafka 分區)。揭露 partition-level ordering 不是 Kafka 專屬、在 broker model 可用 hash exchange 達成。

對應大綱

RabbitMQ 進階主題:Exchange types / Prefetch + consumer 併發(partition-level ordering 模式)。

下一步路由

RabbitMQ vendor 頁Kafka vendor 頁(partition + key 對照)。

引用源