我們通過vip可以進行正常的sql請求,當212上的mycat停了,vip漂到了110上,通過vip仍然可以進行sql請求,應用端根本感知不到後端vip的漂移、mycat的切換,實現了mycat的高可用。
這種方案已經可以滿足大多數的應用場景了,master上的mycat對外服務,backup上的mycat僅作為備用以防master宕機,backup上的mycat基本上不提供服務,就是起到一個以防萬一的作用,並發量不高的應用採用此種方案就可以了。如果並發量高了,master上的mycat壓力太大,那我們就需要考慮將backup上的mycat也利用起來了,並做一個負載均衡,減輕master上的mycat壓力,並充分利用backup上的mycat,具體實現請往下看。
Mycat的高可用是實現了,但美中不足的是沒有物盡其用,我們不難發現,Mycat的兩個節點其實只有一個對外服務,另一個完全備用(以備基本不會發生的宕機),宕機的概率本來就小,備用機基本相當於沒用了,那可不可以將備用機利用起來了? 我們可以將主備Mycat都利用起來,並進行負載均衡,減小主Mycat的壓力,如果其中一個節點宕機了,則由另一個節點完全接管,繼續正常提供服務。