如何搭建一個集羣項目

一、集羣項目是什麼?

搭建項目之前首先要明白什麼樣的項目才叫集羣項目,那麼什麼叫集羣呢?說的簡單一點,集羣就是很多對象集合在一起,集羣項目就是很多一摸一樣的項目放在一起運行嘛。

二、集羣項目有什麼用?

當一個系統使用的用戶比較少時,對服務器的壓力比較小,這個時候也不需要什麼集羣,但當系統的用戶量很多時而且在同一時間進行併發,那麼系統、服務器可能就承受不了這個壓力直接崩潰,也有可能某個系統由於某種原因而崩潰了,這個時候就需要有集羣或熱備,集羣的效果是當其中有一個應用系統崩潰了其他的應用系統還在啓動着,不影響客戶體驗,它的作用是分攤應用系統的壓力,如果服務器內存不夠了那麼要添加其他服務器來分攤壓力。

三、怎麼快速搭建一個集羣項目?

琦三叔搭建的項目比較簡單用到的技術主要爲如下幾種:

nginx、tomcat、redis、web項目

nginx:一個很強大的高性能Web和反向代理服務器,說簡單點就是將用戶發起的url重定向到自己的特定端口項目中,瀏覽器默認是80端口,通過nginx就可以轉到其他端口的項目,如80端口轉到88端口,這個nginx也是集羣的關鍵,通過它才能讓多個相同的項目同時運行。

tomcat:這個衆所周知是一個應用系統容器,只有它開啓了才能訪問到它裏面的項目

redis:緩存服務器,它的功能特別強大,在這裏用到的是作爲多個項目之間的緩存共享,因爲是集羣所以可能在某個項目裏面的內容無法分享到其他項目中,所以用它來同步緩存

web項目:這個就是要訪問的系統項目了。

好了,大致的都介紹完了,那麼準備開始搭建系統了

1)、tomcat搭建

集羣就是多個tomcat同時運行 

第一步:首先從網上下載tomcat,在系統上無法直接運行必須先安裝jdk才行(自己百度),先將tomcat複製成多個如下所示:

 

第二步:修改配置文件,讓多個tomcat可以同時運行,因爲現在這些tomcat除了名字不一樣其他是完全一樣的,所用端口也是一摸一樣的,所以開啓一個後其他的就開啓不了了,打開tomcat目錄下conf目錄下的server.xml文件,修改以下端口:

以此類推,每個tomcat都配置成不一樣的端口,查看下配置是否正確,打開tomcat目錄下bin目錄下的startup.bat,如下就是正常開啓一個tomcat:

把其他tomcat也一起開起來,如果有閃退的那麼代表配置有問題,需要改。

現在tomcat都能正常啓動了,但那麼多dos窗口放在桌面分都分不清楚,所以現在要把tomcat服務化,不再通過startup.bat開啓。

打開tomcat目錄下bin目錄下的service.bat找到下面這行

set SERVICE_NAME=Tomcat7

然後將名字替換成改文件夾名字,如下圖:

直接全部替換就行,然後將tomcat目錄下bin目錄下的tomcat7.exe和tomcat7w.exe改名字也改成剛纔的名字

接着打開dos界面切換到tomcat的bin目錄文件夾中

然後輸入service.bat install 即可。

以此方法將所有tomcat全部服務化,查看是否服務化了直接打開服務界面看是否存在這些服務就好了

默認這些tomcat是沒有開啓的,那麼現在要開啓tomcat,打開tomcat目錄下bin目錄下的tomcat7w.exe

如果開啓tomcat開啓不了,那麼打開tomcat目錄下logs文件夾中的日誌文件,查看報錯原因,琦三叔當時的報錯原因是內存不足了,開啓不了tomcat所以在tomcat7w.exe中修改了下內存優化如下圖:

事後如果想把tomcat7服務刪掉 直接在dos界面輸入以下代碼即可:

tomcat搭建完成了,現在開始搭建nginx

先網上下載nginx,然後直接運行nginx.exe即可

在瀏覽器中輸入localhost跳轉到nginx的界面代表正常運行了,那麼就要開始進行配置,打開nginx目錄下的conf目錄中的nginx.conf文件,修改成如下配置:

PS:

#upstream表示負載服務器池,定義名字爲backend_server的服務器池
upstream backend_server {
    server   10.254.244.20:81 weight=1 max_fails=2 fail_timeout=30s;
    server   10.254.242.40:81 weight=1 max_fails=2 fail_timeout=30s;
    server   10.254.245.19:81 weight=1 max_fails=2 fail_timeout=30s;
    server   10.254.243.39:81 weight=1 max_fails=2 fail_timeout=30s;
  #設置由 fail_timeout 定義的時間段內連接該主機的失敗次數,以此來斷定 fail_timeout 定義的時間段內該主機是否可用。默認情況下這個數值設置爲 1。零值的話禁用這個數量的嘗試。

設置在指定時間內連接到主機的失敗次數,超過該次數該主機被認爲不可用。

#這裏是在30s內嘗試2次失敗即認爲主機不可用!
  }

如果僅僅只是進行端口轉發而不是進行集羣那麼修改成這樣(只需在原來的server外面添加新的server)

這樣是根據不同的網址轉發到不同的端口,此例中不需要。

對了上面的配置文件中www.aaa.com;並不是隨便亂寫的,這個網址必須指到本地,想要讓它指到本地那就要做另一個操作,那就是修改hosts文件,在文件最底部添加一個代碼

127.0.0.1     www.aaa.com

然後打開dos界面輸入 ping www.aaa.com 

現在測試一下是否成功了

先開啓所有tomcat服務,然後開啓nginx,接着在網頁上輸入www.aaa.com顯示如下,則代表成功了

接着上一篇寫,搭建redis

Redis是一個緩存服務器,主要用在linux上,不過有人也做了window上的版本,網上下載windows上的版本,解壓完後有以下內容

然後在dos界面中切換到redis目錄中,然後執行

Redis-server.exe redis.windows.conf就開啓瞭如下所示,簡單吧!注意這個要一直開着,一旦關閉redis服務就關閉了

測試一下,再開啓一個dos窗口輸入以下命令

它的意思是往redis中填充age,然後再獲取填充值,OK了

四、web應用

因爲是集羣,所以在web系統中需要做緩存的內容統統往redis中存,然後要取的時候也從redis中取出來就可以了,也可以用session同步,因爲開發語言太多了,怎麼開發一個web應用暫不介紹,只要搭建完上述幾個內容基本已經有一個初步的成型了。