舉列場景:招商銀行辦理業務
2023年04月29號,招商銀行門口來了30個人辦理業務
此時,招商銀行的櫃檯只有乙個視窗,乙個銀行職員,然後該視窗裡的銀行職員就開始給這30個客戶辦理業務,2個小時過去了,該視窗的銀行職員只給5個客戶辦完了業務,還有25個客戶還在排隊焦急的等待著。
乙個視窗就是單機/單個伺服器
此時,該視窗的銀行職員突然拉肚子,不舒服,所以,該職員不得不跑去廁所,此時該職員在視窗前放了一塊牌子,牌子上赫然寫著暫停服務(單機伺服器宕機/宕機崩潰了)
此時,招商銀行的領導見到此狀況,開始採取措施,緊急抽調了9個銀行職員,又開了9個新的視窗,這9個視窗開始處理剩下的25個客戶
以上案例就是集群
原來是只有乙個視窗辦理業務,那麼乙個視窗就要處理很多的客戶,所以乙個視窗的壓力會很大,而且乙個視窗要處理這麼多客戶,要處理到猴年馬月啊,效率不高,而且萬一該視窗遇到突然情況,停止服務了,那剩下的客戶就沒辦法辦理業務了
後面又增加了9個視窗,就相當於原來只有乙個視窗辦理業務,現在變成了10個視窗辦理業務,原來乙個視窗的壓力,現在分攤給了10個視窗,而且讓客戶等待的時間大大縮短了,你想呀,原來只有乙個視窗的時候,30個人要在同乙個視窗前排隊等待,而現在有10個視窗了,那這30個客戶可以分別去不同的視窗前排隊,每個視窗平均排隊3個人,你想想,原來只有乙個視窗的情況下,我們假設乙個客戶辦理業務需要10分鐘,那麼30個客戶,那就需要300分鐘,如果我們調整為10個視窗的話(這10個視窗同時工作),那麼每個視窗平均排隊3個人,那麼30分鐘就可以把這30個客戶全部處理完,原來需要300分鐘,現在只需要30分鐘了,辦事效率是不是提高了9倍。
來銀行辦理業務的30個客戶就相當於30個請求,原來一台伺服器要處理30個請求,現在有了10臺伺服器了,可以把這30個請求分攤到這10臺伺服器上,那麼單台伺服器的壓力就減小了很多,而且效率也提高了
再舉個生活中常見的例子,比如:某大型超市,過年過節的時候,超市裡人滿為患,尤其是收銀處,更是比肩繼踵,擠滿了人,如果超市只有乙個收銀處,那可想而知,付錢買單都要排隊排成長龍,如果超市採取措施,多設定幾個收銀處,那不但可以減輕單個收銀處的壓力,還可以提高效率,減少了顧客買單時的等待時間,一舉兩得,何樂而不為呢!
大家想一想,如果該超市只設定了乙個收銀處,如果該收銀處停止服務了,那也就意味著顧客無法付錢買單了,只有等該收銀處重新啟動服務,顧客才能付錢買單。所以,超市最好的做法就是,多設定幾個收銀處,不但可以減小單個收銀處的壓力,還可以防止因為單個收銀處突然意外停止了服務而帶來的風險和損失。
好,我們說回銀行的例子,銀行原來只有乙個視窗時,如果該視窗突然遇到了什麼意外,突然暫停服務了,那就沒辦法處理後面的客戶了,而此時如果我們增加了9個視窗的話,如果其中乙個視窗或者其中幾個視窗突然遇到了意外,停止了服務,沒關係啊,剩下的視窗仍然可以繼續服務,不會影響到後面的客戶辦理業務,只不過此時,那些剩下的視窗的工作量會增加一些而已。
案例中,單個視窗就表示單機/單台伺服器,多個視窗就表示多個伺服器,多個視窗做相同的事情就意味著多個視窗構成了集群,就像上面銀行的例子一樣,10個視窗都是做一樣的事情(這10個視窗都是給客戶辦理業務的),就算其中乙個視窗停止服務了,那不是還剩下9個視窗可以繼續服務嘛。(大大提高了容錯性、可用性)
所以集群的好處就是
1.分擔/分攤壓力
2.如果某台伺服器崩潰了,沒事兒,其他的伺服器還在繼續服務,怕啥!(反正每台伺服器都是做一樣的事情,其中一台或幾台伺服器崩潰了,剩下沒崩潰的伺服器還可以繼續服務),提高容錯性、可用性
再舉乙個生活中的通俗案例:就像乙個企業中有2個財務人員,這2個財務人員的工作內容都是一樣的,工作內容都是負責報銷,有一天,其中乙個財務人員辭職了,那怕啥啊,剩下的那個財務人員還可以繼續處理報銷的事情,只不過此時,他的工作量增加了一倍而已,原來2個人的活,現在變成他乙個人來幹了。
大家想一想,如果該企業中只有乙個財務人員來負責報銷的事情,如果該財務人員離職了,那報銷的事情就沒有人來處理了。
乙個財務人員就是單台伺服器,多個財務人員就是多台伺服器,如果這幾個財務人員的工作內容都是一樣的,那就構成了集群,集群就是多個人在一起做同樣的事
假如我們有一套醫療管理系統的web應用程式,我們把該web應用程式部署到tomcat中,假如每天有1萬人使用我們的web應用,假如該tomcat每天要處理1萬個請求,那麼該tomcat壓力會很大,此時如果我們再開9個tomcat,然後把這套醫療管理系統的web應用程式在9個tomcat中都部署乙份,那麼此時就有10個tomcat在同時執行了,我們可以把每天的1萬個請求分攤給10個tomcat去處理(減輕單台伺服器/單個tomcat的壓力),這就是集群,這就是集群帶來的好處。
還有就是,如果其中乙個tomcat或者其中幾個tomcat崩潰了,那剩下的那些還沒有崩潰的tomcat還可以繼續處理請求,繼續服務。
mysql用大白話解釋 大白話說說mysql索引
前面其實寫了好幾篇關於 mysql 索引的文章了,文章中有具體的例項和 sql 語句,這篇文章我想再用純大白話講講 mysql 索引,文中不涉及具體 sql 我之前甚至想過為啥要用資料庫來儲存資料,用普通的 txt 或者 word 這類檔案不行麼,這個問題其實可以從幾個方面來看,乙個是併發訪問資料加...
大白話解釋 氣泡排序
原理 乙個陣列裡,相鄰的兩個元素進行比較,兩兩比較。使用雙層for迴圈,外層迴圈代表比較的輪數 陣列元素個數 1 內層迴圈代表每輪比較多少次 陣列元素個數 1 public class bubblesort for int i 0 ia j 1 system.out.println arrays.t...
振動測試大白話(一) 大白話解釋啥是衝擊響應譜
摘要 有的振動測試行業同行除了要測試結果,也願意交流一下計算的過程,涉及到的計算知識比較多,有的也難以理解。為了讓大家盡可能簡單地理解這些概念,今天開始就逐步分享一些大白話振動測試知識。本篇講衝擊響應譜。於網路 為了檢驗可靠性,很多產品需要做衝擊實驗。對於易於實現的實驗,可以用真實工況或簡單的實驗裝...