閘道器層動態切換介面級資料來源
阿新 • • 發佈:2021-07-17
需求背景
公司存在一些專案因為系統架構不合理,並且在生產環境已經頻繁因為資料庫效能導致不可用的情況
在已經存在的較重的專案中,匯出,核心業務,非核心業務揉在一起的情況下,導致對主庫的壓力及風險非常大,服務經常因為某些查詢介面設計沒有優化,或者是介面沒有優化,導致拖垮整個伺服器
主要解決的問題是,某些非核心業務的查詢介面造成的主例項資料庫負載。
- 生產環境因為匯出等介面太慢,會拖累主庫
- 某些不重要的業務在伺服器負載過高的情況下,與核心業務同資料庫會導致核心業務不可用
設計思想
- 從閘道器進來之後,根據請求的地址,獲取對應的資料來源,通過RPC傳遞的時候附帶過去
- 在服務的攔截器中取出資料來源引數,並且放入ThreadLocal中,注意ThreadLocal線上程池及非同步時候如果需要傳遞,需要額外進行處理,預設不支援
- 然後在動態資料來源中根據ThreadLocal的值動態去切換