項目簡介
本教程將從零開始部署一個前后端分離的開源項目,利用docker虛擬機的容器技術,采用分布式集群部署,將項目轉換成為高性能、高負載、高可用的部署方案。包括了MySQL集群、Redis集群、負載均衡、雙機熱備等等。
部署圖
所用到的主流技術
Docker容器、前后端集群、MySQL集群、Redis集群、Haproxy負載均衡、Nginx負載均衡、Keepalived實現雙機熱備
前后端分離項目部署圖
前后端分離項目開源框架介紹
本次教程所采用的前后端分離的項目開源框架是人人網的renren-fast,前台開發語言采用Vue,后台是java。
總體部署方案概述
數據庫我們采用的是集群,每一個MySQL節點都是要發布到一個Docker虛擬機實例中(實例就是一個虛擬的空間,或者叫容器),每一個MySQL都要部署到獨立的容器里面,這些MySQL之間有一個集群環境。
然后我們不能把所有的數據庫的請求都定向給一個MySQL去處理,因為這樣負載會很高,所以我們應該分散MySQL的處理數據的請求,那么我們該怎么做呢?
答案就是做一個負載均衡,后台程序發給數據庫所有的請求都由負載均衡分散給其余的MySQL,這些MySQL就能去處理對應的請求了,這樣每一個MySQL節點的負載相應的會低一點。
而后台項目要體現的就是高可用,任何一個節點掛掉后不影響整體的運行,所以后台項目也要搞集群,這個集群用的技術就是Nginx了。
再往前就是前端項目了,前端節點如果宕機肯定也不能掉鏈子,也要搞集群,前端集群中間件也采用的是Nginx。
以上的這些節點都是要部署在獨立的容器里面。
除了數據庫之外還要使用高速緩存,高速緩存用的是redis,也要部署在容器當中組成一個集群。