程序員‘故事會’,詳解負載均衡技術的實現:從tomcat到Nginx

摘要: 什麼是負載均衡? 通俗一點講,就是在高併發、大數據環境下給服務器減壓的技術。負載均衡是任何一個有一定規模的互聯網企業都會考慮的問題,負載方式很多,有依靠硬件實現的,也有依靠軟件實現負載的。 今天來聊聊使用軟件來負載的方式。

什麼是負載均衡?

通俗一點講,就是在高併發、大數據環境下給服務器減壓的技術。

負載均衡是任何一個有一定規模的互聯網企業都會考慮的問題,負載方式很多,有依靠硬件實現的,也有依靠軟件實現負載的。

今天來聊聊使用軟件來負載的方式。

你可能聽過各自負載的方式,比如常見的nginx,dubbo,springcloud等等技術框架都能實現負載,作爲軟件大牛的你有沒有考慮過這些負載方式的區別呢?

下面小源就來假想個案例來談談常用的負載,我想對你一定會有幫助。

從一個tomcat談起

在很久很久以前,小源成立了自己的公司,並做了一個購物網站-《小源購物網》,剛開始架構非常簡單,傳統的java開發框架,一個tomcat容器,經過1個月的沒日沒夜的編碼,搞定,上線。

1年後,項目沒想到火了,每天都有大量的人來購買娃娃、衣服、杯子等等。突然發現一個tomcat搞不定,怎麼辦?兩個tomcat唄!

那麼問題來了,兩個tomcat沒問題,服務器也整幾臺,但是我域名只有一個啊,怎麼辦?

請繼續往下看,文末有學習導圖,精講架構視頻資料獲取方式 轉發 轉發 轉發 關注我私信回覆“架構”即可領取

程序員‘故事會’,詳解負載均衡技術的實現:從tomcat到Nginx


Nginx登場

Nginx登場,通過一棒子程序猿的倒騰,在項目中引入nginx就能解決併發問題了,其中的研究過程也並不簡單,session怎麼共享,配置文件怎麼配置等等,說多了都是淚,不管怎麼說,起碼完成了任務,能讓2個tomcat聯合起來工作了。

然而在線商城越來越火,沒過2個月,發現2個tomcat也搞不定了,怎麼辦?只能集成更多tomcat了,當然Nginx集成很多tomcat都沒問題,架構圖如下:

程序員‘故事會’,詳解負載均衡技術的實現:從tomcat到Nginx


但是……

增加tomcat小源得修改nginx.conf這配置文件,修改了配置問題我當然可以reload,讓nginx生效,但reload狗血的經常有問題,而我又不得不經常重啓。

重啓就麻煩大了,我那服務不得停止,客戶好好的在購物,突然發現不能下單,不能付款了,這不非常糟糕?

其實也還好,雖然客戶友好度不好,但小源一般凌晨3點加班來維護,幸苦是辛苦,但勉強能接受。

直到有一天……

噩夢的一天

那天小源正在午睡,3伏天,太陽高曬着,在睡夢中砰的一聲,電是沒停,可是那臺nginx服務器已經在冒煙了。

怎麼辦?那一天nginx的服務器肯定是報銷了,沒過多久客戶的投訴電話就沒完沒了的打了過來,而這只是剛過去10分鐘……

只能重新搭建個服務器了,好在服務器還有,只是配置文件什麼了都忘記備份了,火急火燎的我足足花了1個小時才把服務器弄好,還是nginx配置文件非常熟練的情況下。

問題雖然解決了,但當天小源依然被投資經理一頓臭罵,一個小時損失了很多錢啊,而且客戶的投訴還堆積如山。

以後再發生這情況怎麼辦?我肯定記得把配置文件進行備份了,但再發生nginx死機也是不能接受的啊.

文末有學習導圖,精講架構視頻資料獲取方式 轉發 轉發 轉發 關注我私信回覆“架構”即可領取

終於……

Nginx+keepalived上線

一個nginx機羣肯定是不行了,那我得用兩個nginx機羣才行,一個nginx冒煙了,另外個nignx馬上等頂替,這樣不就好了嗎?

好了,那麼總體的架構圖如下。

程序員‘故事會’,詳解負載均衡技術的實現:從tomcat到Nginx


終於,這樣的架構解決了很大的問題。

但是這架構也有問題,至於到底有什麼問題呢?Dubbo,spring cloud,zookeeper到底和負載有什麼關係呢?

我先舉個例子輕鬆一下,然後告訴你一個大多數人都會面臨的問題。

一個大多數人都會面臨的問題

下面這樣一件事,你肯定也感同身受。

張程已經工作2年了,每個項目都是熬夜加班、高質量完成,薪資卻依舊沒有過萬!多次提出加薪請求,領導總說哦哦哦知道了。

吃午飯時他聽說,有個離職的同事,換了工作後年薪翻了1倍,已經40萬+了。此時他心中一驚,明白了問題不在自己,而是目前的工作很難再大幅漲薪了。

你肯定也想快速拿到40萬+年薪,不是嗎?

很明顯,java架構師正是你的機會。

我瞭解到,目前全行業都在使用微服務技術,人才短缺非常嚴重,普通微服務開發起薪也在15K/月。

靠微服務技術拿到高薪的例子,新聞裏我們身邊都有很多!

或許你也有過這樣的經歷:

到百度搜索“如何學習微服務?”,在結果頁中點開的卻都是廣告,往下翻個5、6頁,也沒有滿意的答案。

你又到知乎搜索“微服務要學什麼技術?該怎麼學?”。

各路鍵盤大神告訴你,要好幾本書......

你把書買回家,每本都厚如磚頭。我猜你肯定會想:“看完這些書怎麼也得2年吧”,瞬間從“信心十足”變成“就當看着玩吧”。

那我們該如何輕鬆學習微服務呢?

下面的方法可以幫到你!

其實要輕鬆學習很簡單,

我給你總結了兩個要點:

找到一套好的視頻課程,緊跟大牛梳理好的知識框架進行學習。

多練。

你我都不是天才,但只要你能做到這兩點,短時間掌握技術的概率是非常大的。

那怎樣才能找到一套好課程呢?

而且還必須免費 !

關注我:私信回覆“架構”獲取往期Java高級架構資料、源碼、筆記、視頻

Dubbo、Redis、設計模式、Netty、zookeeper、Spring cloud、分佈式、

高併發等架構技術

資料獲取方式

加羣:856443934,私信關鍵詞 【架構】即可獲取!

重要的事情說三遍,轉發、轉發、轉發後再發私信,纔可以拿到!

程序員‘故事會’,詳解負載均衡技術的實現:從tomcat到Nginx


程序員‘故事會’,詳解負載均衡技術的實現:從tomcat到Nginx


程序員‘故事會’,詳解負載均衡技術的實現:從tomcat到Nginx


程序員‘故事會’,詳解負載均衡技術的實現:從tomcat到Nginx


程序員‘故事會’,詳解負載均衡技術的實現:從tomcat到Nginx


程序員‘故事會’,詳解負載均衡技術的實現:從tomcat到Nginx


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