拓補圖:
apache-php↘
nginx+keepalived主 apache-php ↘ mysql-寫-主
client amoeba mysql-讀-從
tomcat mysql-讀2-從
nginx+keepalived從
tomcat
首先是客戶連接到負載均衡器,利用keepalived故障隔離和負載均衡器間的失敗切換,數據通過nginx主,並且它還能夠檢測到服務器池對象的健康檢查, 然後利用nginx檢測http報文中的字段來控制http數據包的走向,數據包從客戶端發起,經過nginx (主),nginx通過查看http報文中host頭部把數據分發給不同的web主機,查看uri來實現不同資源的分發,如http頭中的頁面是php或者html的話,就交給apache來處理。接着apache處理php頁面時,php有連接mysql的代碼,php代碼中定義了讀寫mysql數據庫,這時會去連接mysql。
amoeba將sql請求發送到不同的mysql數據庫上執行同時也控制了數據包的走向,實現了讀寫分離,負載均衡等,可以讀數據去從服務器,寫數據去主服務器。