天天看點

多IDC資料分布--MySQL多機房部署

<a href="http://photo.blog.sina.com.cn/showpic.html#blogid=85bc801e0101h8tc&amp;url=http://album.sina.com.cn/pic/002rQqVoty6Ek0vKFpt4f" target="_blank"></a>

<a href="http://photo.blog.sina.com.cn/showpic.html#blogid=85bc801e0101h8tc&amp;url=http://album.sina.com.cn/pic/002rQqVoty6Ek0vNQvwda" target="_blank"></a>

<a href="http://photo.blog.sina.com.cn/showpic.html#blogid=85bc801e0101h8tc&amp;url=http://album.sina.com.cn/pic/002rQqVoty6Ek0vQeV157" target="_blank"></a>

<a href="http://photo.blog.sina.com.cn/showpic.html#blogid=85bc801e0101h8tc&amp;url=http://album.sina.com.cn/pic/002rQqVoty6Ek0vTFaO7a" target="_blank"></a>

嘗試1:Master→Relay →Slave

一、特點:

1. Slave和前端在一個IDC;

2. DB集中寫, cache本地寫;

3. 某一機房是核心。

二、挑戰:

1.不适合寫入量大的業務;

2.Cache清理機制複雜;

3.注意同步延時問題;

4.Relay容災。

嘗試2:MySQL federated engine

一、特點

1.利用FE實作多master到單slave的同步;

2.FE不提供線上服務;

3.DB和Cache本地讀本地寫;

4.N個IDC部署中每個IDC需要部署N-1個relay。

二、挑戰

1.MySQL協定太重;2.存在更新丢失問題;3.維護難度大。

嘗試3:MySQL Master/Master

1.雙寫;2.容災優勢高。

1.寫節點限制在兩個IDC;2.時序問題。

嘗試4:Master→Queue Service→Master

1.多點寫入;2.索引和内容合并同時入隊列;3.每個IDC完全獨立。

1.帶來運維複雜;2.程式的解耦問題。

經驗:

1.能不分布就不要分布;2.部署成對IDC并且不多于4個;3.提高使用者體驗的同時解決容災和突發流量問題;4.考慮好業務的時序問題;5.異步為王。

本文轉自ljianbing51CTO部落格,原文連結:http://blog.51cto.com/ljianbing/1617618 ,如需轉載請自行聯系原作者

繼續閱讀