<a href="http://photo.blog.sina.com.cn/showpic.html#blogid=85bc801e0101h8tc&url=http://album.sina.com.cn/pic/002rQqVoty6Ek0vKFpt4f" target="_blank"></a>
<a href="http://photo.blog.sina.com.cn/showpic.html#blogid=85bc801e0101h8tc&url=http://album.sina.com.cn/pic/002rQqVoty6Ek0vNQvwda" target="_blank"></a>
<a href="http://photo.blog.sina.com.cn/showpic.html#blogid=85bc801e0101h8tc&url=http://album.sina.com.cn/pic/002rQqVoty6Ek0vQeV157" target="_blank"></a>
<a href="http://photo.blog.sina.com.cn/showpic.html#blogid=85bc801e0101h8tc&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 ,如需轉載請自行聯系原作者