1. 程式人生 > 其它 >閘道器層動態切換介面級資料來源

閘道器層動態切換介面級資料來源

需求背景

公司存在一些專案因為系統架構不合理,並且在生產環境已經頻繁因為資料庫效能導致不可用的情況

在已經存在的較重的專案中,匯出,核心業務,非核心業務揉在一起的情況下,導致對主庫的壓力及風險非常大,服務經常因為某些查詢介面設計沒有優化,或者是介面沒有優化,導致拖垮整個伺服器

主要解決的問題是,某些非核心業務的查詢介面造成的主例項資料庫負載。

  1. 生產環境因為匯出等介面太慢,會拖累主庫
  2. 某些不重要的業務在伺服器負載過高的情況下,與核心業務同資料庫會導致核心業務不可用

設計思想

  1. 從閘道器進來之後,根據請求的地址,獲取對應的資料來源,通過RPC傳遞的時候附帶過去
  2. 在服務的攔截器中取出資料來源引數,並且放入ThreadLocal中,注意ThreadLocal線上程池及非同步時候如果需要傳遞,需要額外進行處理,預設不支援
  3. 然後在動態資料來源中根據ThreadLocal的值動態去切換