SpringCloud裡面切換資料來源無效的問題

2022-06-25 17:42:12 字數 451 閱讀 4544

問題描述:

呼叫鏈:controller1的介面a->service1的方法a->service2的方法b

方法a開啟了事務,且指定了資料庫a的資料來源

方法b也開啟了事務,使用了預設的事務傳播機制(propagation_required),即加入到了方法a的事務中,同時又指定了資料庫b的資料來源

方法a和b裡面都有資料庫查詢操作

在呼叫介面a時發生了未找到資料庫表結構的異常

原因分析:

在同乙個事務裡面切換資料來源是不起作用的,因為同乙個事務只能作用在單個資料來源上,切換資料來源需要在不同事務中操作

解決方案:

這裡需要把方法b的事務傳播機制改為propagation_requires_new,即把方法a上的事務掛起,新建乙個事務,這樣切換資料來源就可以生效了

軟切換 硬切換,垂直切換 水平切換

1 軟切換是 先切換,後斷開 移動節點只有在取得了與新基站的鏈結之後,才會中斷與原基站的聯絡,因此在切換過程中沒有中斷,不會影響通話質量 2 軟切換由於是在頻率相同的基站間進行,在兩基站或多基站覆蓋區的交界處,移動節點同時與多個基站通訊,前向業務通道和反向業務通道的路徑分集的作用,因而可大大減少切換...

阿里面試題 如何減少上下文切換?

阿里面試題 如何減少上下文切換?執行緒池的關鍵點是 1 儘量減少執行緒切換和管理的開支 2 最大化利用cpu。對於1,要求執行緒數盡量少,這樣可以減少執行緒切換和管理的開支 對於2,要求盡量多的執行緒,以保證cpu資源最大化的利用。所以對於任務耗時短的情況,要求執行緒盡量少,如果執行緒太多,有可能出...

js裡面for迴圈裡面的of和in區別

for in 語句用於遍歷陣列或者物件的屬性名稱 key 鍵名 陣列中的每個元素的索引被視為屬性名稱,所以在使用for in遍歷array時,拿到的是每個元素索引 for in 迴圈只遍歷可列舉屬性。像 array和 object使用內建建構函式所建立的物件都會繼承自object.prototype...