在7層分發中,http,mysql是如何控制數據包的走向

拓補圖:

                                                     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數據庫上執行同時也控制了數據包的走向,實現了讀寫分離,負載均衡等,可以讀數據去從服務器,寫數據去主服務器。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章