本篇文章整理自今日頭條的沈輝在 RocketMQ 開發者沙龍中的演講,主要和大家分享一下,RocketMQ 在微服務架構下的實踐和容災體系建設。沈輝是今日頭條的架構師,主要負責 RocketMQ 在頭條的落地以及架構設計,參與消息系統的時間大概一年左右。
以下是本次分享的議題:
- 頭條的業務背景
- 爲什麼選擇 RocketMQ
- RocketMQ 在頭條的落地實踐
- 頭條的容災系統建設
業務背景
今日頭條的服務大量使用微服務,容器數目巨大,業務線繁多, Topic 的數量也非常多。另外,使用的語言比較繁雜,包括 Python,Go, C++, Java, JS 等,對於基礎組件的接入,維護 SDK 的成本很高。
引入 RocketMQ 之前採用的消息隊列是 NSQ 和 kafka , NSQ 是純內存的消息隊列,缺少消息的持久性,不落盤直接寫到 Go