在當(dāng)前的后臺(tái)開發(fā)中,MySQL應(yīng)用非常普遍,企業(yè)在選拔Java人才時(shí)也會(huì)考察求職者諸如性能優(yōu)化、高可用性、備份、集群、負(fù)載均衡、讀寫分離等問題。想要成為高薪Java工程師,一定要熟練掌握MySQL,接下來(lái)給大家分享mysql數(shù)據(jù)庫(kù)應(yīng)用場(chǎng)景知識(shí)。
1、單Master
單Master的情況是普遍存在的,對(duì)于很多個(gè)人站點(diǎn)、初創(chuàng)公司、小型內(nèi)部系統(tǒng),考慮到成本、更新頻率、系統(tǒng)重要性等問題,系統(tǒng)只依賴一個(gè)單例數(shù)據(jù)庫(kù)提供服務(wù),基本上已經(jīng)滿足需求。單Master場(chǎng)景下應(yīng)該關(guān)注四點(diǎn):數(shù)據(jù)備份(冷備、熱備、溫備)、數(shù)據(jù)還原、備份監(jiān)控、數(shù)據(jù)文件遠(yuǎn)程存儲(chǔ)。
2、一主一從
考慮一主一從的多數(shù)初衷是系統(tǒng)性能和系統(tǒng)高可用性問題,除了單Master場(chǎng)景中的備份工作需要做好以外,還有性能優(yōu)化、讀寫分離、負(fù)載均衡三項(xiàng)重點(diǎn)工作需要考慮。
3、一主n從
一旦開始考慮一主多從的服務(wù)器架構(gòu),則證明你的系統(tǒng)對(duì)可用性、一致性、性能中一種或者多種的要求比較高。好多系統(tǒng)在開始搭建的時(shí)候都會(huì)往這個(gè)方向看齊,這樣“看起來(lái)”系統(tǒng)會(huì)健壯很多。一主n從關(guān)注的重點(diǎn)是:數(shù)據(jù)一致性、腦裂、雪崩、連接池管理。
4、橫向集群
橫向集群主要是從業(yè)務(wù)特性的角度對(duì)系統(tǒng)進(jìn)行切分,最徹底就是切分成了各個(gè)子系統(tǒng),子系統(tǒng)之間通過一些數(shù)據(jù)同步的方案來(lái)把一些核心數(shù)據(jù)進(jìn)行共享,以避免跨庫(kù)調(diào)用Join。然后是各種系統(tǒng)接口調(diào)用,把大事務(wù)拆成小事務(wù),事務(wù)之間做好隔離和同步。橫向集群學(xué)習(xí)的重點(diǎn)是表路由、跨庫(kù)Join、分布式事務(wù)。
5、縱向集群
橫向集群的切分思路最終是切分子系統(tǒng),而縱向集群最后遇到的最棘手的問題是擴(kuò)縮容。縱向集群學(xué)習(xí)的重點(diǎn)是庫(kù)路由、分布式主鍵、擴(kuò)/縮容。
6、混合模式
混合模式是對(duì)以上5種場(chǎng)景中的一個(gè)總結(jié),將每個(gè)場(chǎng)景中的重點(diǎn)、問題點(diǎn)考慮全了,混合模式下的問題就不是問題。
除了要掌握MySQL數(shù)據(jù)庫(kù)知識(shí),Java工程師更要掌握專業(yè)的技能,比如面向?qū)ο蟆ava常用的類、庫(kù)等。