您好,登錄后才能下訂單哦!
本篇文章為大家展示了MySQL數據庫中怎么實現異構數據同步,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。
在實現levelDB掛載成MySQL引擎時,發現在實際存儲是key-value格式時候,MySQL的異構數據同步,可以更簡單和更通用。
以tair為例,簡要描述一下以MySQL為基礎的一種方案。
所謂異構數據同步,是指應用只更新MySQL,而由后端的某些機制將這些更新應用到其他數據存儲服務上。
1、MySQL-Tair 引擎
a) 使用
b) 說明
這不是一個“存儲引擎”,實際上數據存儲在tair服務器上。執行insert/update/delete時,只是將對應的動作put /remove到tair服務器。當然這個過程對用戶是透明的。
2、MySQL-Tair 引擎怎么用于更新tair數據
首先,數據更新有兩種方式,同步更新和異步更新。
a) 異步更新
先說異步更新。這個類似“讀binlog來更新數據”的方案。如果使用MySQL-Tair引擎,結構可以如下:
說明:tair表只存在Slave上,與主庫上要更新的表同名。
完備性:以現在主庫都是row格式的binglog結構為背景,這里Slave上收到的都會是這個更新的完整行信息,從中取出需要的key和value即可。
b) 同步更新
同步更新的意思,是應用端更新MySQL, 在MySQL和tair同時更新完成后,MySQL才返回用戶更新成功。
這種模式更像將tair作為MySQL的網絡級別緩存服務。當然應用在讀取的時候可以繞過MySQL直接訪問tair,則只是作為一種更新方案。
這種模式能夠讓更新后的下一次訪問直接命中tair中的緩存數據。異步則無法保證。
結構如下:
說明:這里實體數據表與tair表在同一個數據庫,表結構相同,引擎不同。應用還是更新數據表,用觸發器觸發相同的語句更新tair表。
完備性:同樣的,觸發器會得到這個更新的新行全值。
3、MySQL同步的優點
這種有以下優勢,即使只考慮異步更新模式:
a) 不需要自己模擬一個MySQL數據庫的從庫、不需要維護連接(MySQL自帶)
b) 不需要解析binlog(什么時候binlog切換都要關心,要做的事情太多)
c) 更方便的監控。MySQL數據庫現有的監控接口,直接得到tps、延遲時間,同步點。
d) 更方便的管理。如果主庫掛了,一個Change master命令即可;想暫時停更新,stop slave、start slave。
e) 更方便的擴展。 直接利用MySQL數據庫的級聯主從。
當然還有讀binlog方案無法實現的同步選擇。
4、其他
不限于tair,只是舉例。
如果后端是一個可靠存儲,如TFS,則可以當作一個存儲表來使用,讀寫都是SQL接口。與直接更新TFS有什么區別?簡單說一個,可以直接跟MySQL里的實體表做join操作。
上述內容就是MySQL數據庫中怎么實現異構數據同步,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。