京東云開發者|mysql基于binlake同步ES積壓解決方案( 二 )


優點

  • 指定資源情況下,增大消費端并發
  • 可以開啟并行消費,且保證順序消費
  • 可以使得資源充分利用,增加消費性能
缺點
  • 增加毫秒級緩存額外開銷
實踐:麥哲倫運單中心針對此方案實現binlake數據同步ES
2)binlake主題分發子主題,顯示增大并發策略
京東云開發者|mysql基于binlake同步ES積壓解決方案

文章插圖
優點:
  • 邏輯相對簡單,不需要開發復雜邏輯,無需引入額外中間件
  • 預估轉發消息速率即是實際處理速率
提升速率計算:
  • 原主題單線程處理一條數據存儲到ES時間為es_time,舉例為50ms,每秒吞吐量是20條
  • 現單線程轉發MQ一條數據時間為trans_time,舉例為20ms,每秒轉發吞吐量50條
  • 假設轉發topic為N個子主題 , 則吞吐量理論為n*20實際小于轉發吞吐量50,此處多子主題對cpu核數競爭
  • 提升吞吐量為=(1000ms/trans_time )轉發吞吐量 - (1000ms/es_time)原有吞吐量
缺點
  • 擴展性不好,實際結果有待驗證,小于預估值
實踐:跨境赤道分發中心實現類似功能實踐,消息轉發,其他MQ實現
3)倆種方案對比
主題較少一個倆個主題情況下,且業務處理比較耗時情況下,不想額外開發,可選方案二長期方案選擇方案一,并行消費策略,可伸縮性,可擴展,支持動態擴容
5.總結針對MQ積壓問題,并行消費可以是解決問題的一大利器,本文從binlake同步ES進行分析 , 同時針對積壓推薦倆種方案,并從性能合理利用及擴展性分析 , 簡要介紹方案二并行有序消費策略,希望能夠幫助大家,如有問題,請隨時指出!
作者:任洪波

推薦閱讀