主從複製延遲導致坑

2021-09-29 23:31:22 字數 538 閱讀 5112

背景:

線上出現了使用者註冊了多條重覆記錄

排查問題:

原來**邏輯:

先查詢傳過來的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是 從頭開始備份 主機之前的資...