背景:
線上出現了使用者註冊了多條重覆記錄
排查問題:
原來**邏輯:
先查詢傳過來的openid是否在從庫中存在,不存在就進行主庫插入。
出現問題關鍵點:
前端第一次請求時候,判斷從庫不存在,然後主庫插入註冊資料。由於出現複製延遲,前端第二請求過來,因為延遲了從庫查詢還是不存在,那就gg了,又重複插了一條。
解決方法:
方法有很多種,列舉一些
延伸一些也是很明顯的主從複製的錯誤:
$intstatus = $arrinput[『status』]
;$this-
>objacttmp-
>updateinfobyaid($intactid, $intstatus)
;// 更新後,馬上查
$arractcontent = $this-
>objacttmp-
>getactbystatus($intstatus)
;
這就是主從延遲出現的地方,update後,馬上get。 主從複製延遲及原因
1.主庫方面原因 1 binlog寫入不及時 sync binlog 1 2 預設情況下dump t 是序列傳輸binlog 在併發事務量大時或者大事務,由於dump t 是串型工作的,導致傳送日誌較慢 如何解決問題?必須gtid,使用group commit方式.可以支援dump t並行 3 主庫...
mysql讀寫分離,主從複製,主從延遲
為了提公升資料庫的效能,一般會採用讀寫分離,即寫請求去主庫,讀請求去從庫。支援開啟多個io執行緒,可以提公升效率。開啟mysql的semi sync 半同步複製功能,即資料落庫,寫入binlog,並至少同步給一台從庫的relay日誌,才算寫成功。從庫開啟多個sql執行緒,可以併發讀取relay日誌,...
Mysql主從複製和Redis主從複製的區別
這是學習的時候自己總結的筆記,因為使用typora記筆記,導致太多的筆記分散,所以傳到部落格方便查詢,代表的是typora裡的高亮 mysql主從複製和redis主從複製的區別 複製時機 mysql的主從複製是 從接入點開始 主機之前的資料,從機不會複製 但是redis是 從頭開始備份 主機之前的資...