一些常見問題的實際處理方案

2021-09-24 13:20:50 字數 911 閱讀 2029

一.資料庫主從延遲

目前,做了乙個登陸系統,資料庫採用主從複製,偶爾會存在註冊使用者後,使用者登陸卻不存在,這是因為登陸的時候是從讀庫中去讀取的資料,然而資料同步還沒到位,因此我採用的方案是:

(2)在登陸的時候,先從快取當中讀取,如果還是沒有的話,就可以通知客服了。

二.快取與資料庫一致性問題。

先提問吧。假設現在有兩個執行緒:執行緒a,讀執行緒,已經讀出資料,在set快取的時候被掛起。執行緒b,寫執行緒,這時候已經寫入資料,然後進行快取操作(可以刪除,可以寫入),當b執行完畢以後才會執行a。

那這個時候如果b選擇刪除,那麼a就會寫入快取當中,這個時候快取裡面其實是髒資料,因此這種方式我認為不太合適。

那麼就採用b寫入快取的方式,這樣的原因就在於讀執行緒a,在讀快取和寫快取不是乙個同步操作,因此可以考慮把執行緒a的讀寫資料放入乙個同步操作裡面,例如redis的lua指令碼if(get key ==null) set key value這樣的形式即可

三.服務降級

(1)通過乙個註解@annotation(score=分數,method=降級的方法,exception=降級異常,ignoreexception=降級忽略的異常)

(2)通過aop呼叫,當降級服務關閉的時候,不操作。當斷路器開啟的時候,對比系統給的分數,如果小於就進入服務降級。

(3)當有method的時候,呼叫method方法,並把引數傳遞,忽略其中ignoreexception。

(4)當沒有method的時候直接丟擲exception。

其中比較注意的一些問題:

(1)服務降級的分數和開啟關閉如何傳送到每個服務當中。可以利用mq來實現監聽事件,也可以利用http介面來監聽事件

(2)該元件應該需要乙個http介面來展示自己的開關的資訊。

(3)當使用者沒有宣告丟擲異常的時候,元件需要自己說明會丟擲什麼異常。這點需要寫在註解上

oracle的一些常見問題及處理

1.安裝後如果通過 regional and language options oracle服務將不能正常啟動,tns會出問題。2.安裝oracle不能通過dhcp分配ip,需要自己指定好ip才能安裝成功。3.oracle的安裝目錄不能是中文,否則安裝不成功。4.安裝時計算機名不能是中文,否則監聽不...

dedecms一些常見問題

1 list和arclist的區別 首頁的列表呼叫,以及其它內頁的側邊欄,這些地方都可以使用arclist標籤,並且還可以根據typeid id 來指定呼叫哪個欄目下的列表 list 標籤還有乙個不同處就是分頁,我們知道在 製作中分頁功能是 欄目列表頁必不可少的乙個功能,而這個功能用arclist標...

Redis一些常見問題

1.多個系統同時併發競爭乙個key zookeeper分布式鎖 儲存到mysql的時候帶有時間戳 這樣redis裡面存的也有時間戳了 2.redis執行緒模型 核心操作模組 如網路請求模組 由單執行緒完成,當然另外還有一些 輔助線程 從旁協助,比如 lru 的淘汰過程。為什麼之前網路請求模組為什麼沒...