Facebook的分散式優先順序佇列FOQS

banq 發表於 2022-01-23

Facebook 有序佇列服務 (FOQS)是一種完全託管的分散式優先順序佇列服務,用於在許多服務之間進行可靠的訊息傳遞。

FOQS 已從區域部署發展為地理分佈的全球部署,以幫助確儲存儲在邏輯佇列中的資料具有高可用性,即使在大規模災難情況下也是如此。

遷移到全域性架構需要對架構進行修改以支援路由和注意完成,而不會中斷 FOQS 客戶的服務可用性。

鑑於 FOQS 發揮的重要作用,它必須能夠抵禦大規模災難,例如整個資料中心或區域的完全故障,或者在對資料中心執行維護時計劃中斷。

FOQS 已經發展成為一個全球安裝。在 2018 年颶風佛羅倫薩之後,我們意識到要真正做好災難準備,我們需要遷移到具有更高可用性的全球架構,以便在災難事件期間仍然可以全域性訪問佇列中的資料。在此過程中,我們解決了與將租戶遷移到全球設施相關的運營挑戰,並在 2021 年以驚人的規模完成了遷移,使內部客戶的停機時間為零。

 

FOQS 最初是在 2018 年出於 Meta 的非同步計算平臺(又名 Async)的擴充套件需要而開發的。在我們的第一次迭代中,系統建立在三區域、半同步複製 MySQL 拓撲之上,區域 X 中的佇列節點與區域 Y 中的佇列節點完全隔離。