-
1 # Jfzz取個名被搶
-
2 # 機器學習之路
nginx是一個伺服器,它一般是使用在高發等場景來提高伺服器的效能。如果你想學習Java後臺開發,建議學習一些後臺開發框架spring,springboot等。我以前學習Java後臺開發的時候,是學的ssh框架,不過現在用這個框架的不多了。
-
3 # 蟲蟲安全
沒有java nginx這樣一個叫法。nginx是最常用的web伺服器和反向代理伺服器。但是不能解析java,也不是什麼java框架。和nginx一類的有個web伺服器和java應用伺服器java Servlet容器Apache Tomcat。
強大的web伺服器nginxnginx是有毛子著名網站rambler.ru為自己量身定做的一個web伺服器,第一版0.1.0於2004年釋出。開源許可協議為bsd協議。釋出後由於其穩定,高效能,強大單位綜合功能性使其迅速佔領市場,目前是佔有量最大web伺服器,反向代理和web快取伺服器之一。
也可以作為java容器的前端或cdn部分,透過反向代理到後端java伺服器。
java應用伺服器tomattomcat在蟲蟲回答和文章中多次提到過,是有apache基金會下的一款免費開源的web伺服器和java應用伺服器。是世界上使用最多的java應用伺服器,包括世界上最繁忙的系統,天朝12306中國鐵路線上購票系統的後端java應用伺服器也是tomcat。
tomcat目前維護三個系列tomcat9,tomcat8和tomcat7。最新版本分別為9.0.7,8.0.51以及7.0.86,還在用5和6的同學該升級了。
tomcat目錄結構
tomcat內部功能解析
java開發框架最後說下java開發框架,java開發框架多不勝數,就web開發方面最主要的就數SSH了。SSH裡面用的最流行最廣泛則要數spring框架了。關於這個框架請關注蟲蟲,看我的文章《spring框架,spring boot spring io的歷史和淵源》。
-
4 # LoveBugs
Java是一門程式語言,nginx是一個反向代理伺服器,二者都是目前比較流行的web技術,不過是相互獨立的兩個技術,架構上沒有必然關聯。
我們公司正好這兩年在做web應用前後端分離,前端採用的是H5和Vuejs,反向代理伺服器用的nginx,後臺服務主要用Java來寫,說下我的經驗吧。
nginxnginx是目前比較流行的前端反向代理伺服器,具有高效能,穩定,輕量級和相容性好的特點。特別是對於目前比較流行的微服務架構,nginx從軟體層面用很低成本解決了業務轉發和負載均衡的問題。說和Java沒有必然聯絡,是因為後臺服務端的編寫可以用任何語言,是不影響nginx轉發的。
Java框架你所說的Java後臺開發,應該是指服務端開發,這方面目前成熟的架構很多,入門的話,推薦先學習最流行的幾個框架,比如spring,springboot,mybatis等,學會了搭個基本的web服務沒問題。
然後就是前後端分離問題,如果還用傳統形式JSP形式,那麼用Tomcat伺服器就行了,不需要nginx。如果前後端分離,伺服器端只提供Rest介面,那除了伺服器端要用Tomcat釋出外,前端就需要用到nginx的web釋出和反向代理功能了。
-
5 # java攻城獅愛好者
答案是比較常用,絕不是最入門的技術,nginx和Java並沒有絕對關係,它主要2個作用: 反向代理和負載均衡。反向代理的作用就是透過各種不同的配置攔截請求進行轉發。負載均衡的作用就是針對應用配置叢集提高其可用性,當其中一臺宕機,應用依然可以正常執行,經常需要使用memcache配置session共享。
題主若是急著找工作可以先學一些現在流行的常用的框架,比如spring全家桶(包含spring,springboot,分散式框springcloud,spring data jpa等),springmvc,mybatis,也可以瞭解一些現在不太流行的struts,hibernate框架,前端學一些jQuery,angularjs,vue.js,基本就可以出去找工作了。
當然題主若想走的更遠,基礎才是重點,對基礎的理解越深入越好。
-
6 # IT大資料科技
算是吧,Nginx這門技術用的很廣,幾乎所有的java web專案上都用到啦,首先它是一個輕量級的web伺服器或者反向代理伺服器,它有很多的優點,比如佔的記憶體少,而且併發處理能力強,就連百度,京東,騰訊,淘寶都在用它,Nginx的模型採用的是master和worker模型,這樣的模型很多技術都在用,像大資料中火的hadoop strom hbase等都用這種模型。一般就是隻有一個master和多個worker程序同時執行,不過一般都會將master配置成高可用的,為了防止它掛掉。而master程序主要功能就是管理work程序,像發發送訊號,並監控它的執行狀態,而worker程序主要處理網路事件,而且這麼多個worker程序的關係是平等的,它們之間相互競爭,而Nginx對於事件是採用非同步非阻塞的方式來實現的。而反向代理主要是實現負載均衡,從而降低每臺伺服器的負荷。
-
7 # 會點程式碼的大叔
Nginx確實是比較常用的技術(伺服器)之一,不僅Java應用可以使用到,它可以應用在很多場景下。下面我就按照自己的理解,向大家介紹一下。
什麼是Nginx如果你是Java程式設計師,沒用聽說過Nginx的話,那麼你肯定聽說過Apache吧。Nginx也是一樣,是一種WEB伺服器。它有以下特點:
是使用C語言開發出來的,基於事件驅動架構,效能很高,高併發能力極強;
跨平臺,可以執行在windows、Linux、Mac、Solaris等作業系統上;
第三方模組很多(生態環境好)。
那麼我們再看看Nginx能做什麼:
反向代理這個概念大家一定很耳熟,那麼在說反向代理之前,先看看什麼是正向代理。
正向代理:我想訪問谷歌,沒辦法直接訪問,這時候找一個代理伺服器,我透過代理伺服器訪問谷歌;正向代理特點是客戶端知道要訪問的伺服器地址是什麼;伺服器不知道客戶端是誰,正向代理-代理的是客戶端;
在一個專案的架構中,正向代理和反向代理可能同時存在。
負載均衡因為Nginx可以做反向代理伺服器,它可以把客戶端的請求傳送給伺服器端;客戶端的請求數量,就是負載量。
那麼把負載量,按照一定的規則,分發給不同的伺服器就行處理,這個就叫做負載均衡;負載均衡的好處,就是把壓力平均到每一臺伺服器上。負載均衡的排程方法有:輪詢,一個一個輪著發;ip_hash;url_hash;fair等。
總之,Nginx是常用的軟體(伺服器)之一,最好學習一下。
-
8 # 測試領域專家
題主應該是對負載均衡有一定了解,但是對Java領域不太熟悉。
從題主的截圖判斷,應該是想問Java的後臺開發框架哪些能做服務治理和分散式開發。現在用的比較多的是SpringCloud和Dubbo。建議題主直接學習SpringCloud。
-
9 # 一個存在感小透明
作為一個BAT的java開發工程師,可以肯定的告訴你,是的。
接下來,我們來分析,為什麼Nginx對Java後臺開發如此重要。
負載均衡在引入Nginx之前,平臺服務通常是單點,這樣就有兩個缺點:
1 如果節點宕機,整體服務就不可用,從而帶來了服務穩定性的隱患。
2 如果節點的qps無法承擔日漸增長的使用者請求量,那麼在服務改進之前,就有可能因為無法承擔瞬時巨大的請求而宕機,從而導致服務不可用,具體例子可以參見最初的12306網站。
這兩個缺點都可以透過引入Nginx來解決。
首先,佈置兩個相同功能的Tomcat伺服器,然後在Nginx的conf檔案中配置,所有的請求都指向這兩個Tomcat。在兩個伺服器都能正常執行的情況下,此時從使用者側感受到的qps將會乘以2,這樣就解決了上面的缺點2。加入某一時間,一個伺服器掛掉了,Nginx會立刻感知,然後將所有請求轉發給另一臺還活著的Tomcat,這樣,從使用者側就感受不到服務的穩定性受到了影響,等我們重新啟動了Tomcat後,Nginx會再將請求轉發過去,即Nginx能自動感知指向的Tomcat的上線與下線,從而解決了上面的缺點1。
反向代理隨著越來越多的產品開始選擇分散式架構,一個完整的服務通常由多個負責不同功能的Tomcat構成,這樣做的好處是功能解耦,降低了單個功能塊出問題影響全域性的可能性。舉例,雖然都是從支付寶入口,就算有一天螞蟻森林服務掛了,喂小雞的模組也不會受到影響。極端情況,單個伺服器掛掉,只意味著單個模組無法運作,但是還能保證其他模組正常運作。但是我們不能讓使用者為了不同的子功能去記錄不同的域名,就好像支付寶不可能為了螞蟻森林和喂小雞單獨寫兩個app出來一樣,此時,Nginx的反向代理能力就大展身手了。我們可以為不同的url path配置指向不同的伺服器地址,這樣對外還是一個單獨的host與ip,減輕了使用者的使用負擔,也隱藏了我們的後臺服務。
因此,大家可以明白Nginx目前對平臺級服務是有多麼重要了。
-
10 # 此生唯一
nginx並不是一門技術,而是高效能的反向代理伺服器,但是nginx的配置確實是一門技術活!
nginx使用C語言進行開發,可以說跟JAVA沒半毛錢關係,也可用在PHP伺服器開發,大資料等領域!
但是因為JAVA在開發web伺服器中佔比十分之高,而高效能的後臺服務卻少不了nginx的參與,所以JAVA程式設計師不得不學習nginx原理和使用!
先來看下什麼是nginx?
nginx是一種輕量級,高效能,易配置,穩定度高的反向代理伺服器,只需要簡單的配置就可以得到一臺具有負載均衡功能的穩定伺服器!
nginx有什麼用?
3,支援高併發:諸如tomcat這樣的應用伺服器不能支援大量的連線,(貌似tomcat9改進了?)在高併發環境容易崩潰,而nginx是基於epoll模型的非同步非阻塞伺服器,只有當連線中有io事件的時候,才會通知程序進行處理,既避免了頻繁建立和銷燬執行緒的開銷,又沒有維持多個長連線的記憶體開銷,所以nginx能支援十萬,百萬級併發!
4,靜態伺服器,用的不多!
怎麼用nginx?
真的很簡單,配置幾行就能體驗高效能的伺服器,自行百度!
為什麼要學nginx?
1,因為效能好,原因如上。。
2,因為面試要問,不僅問反向代理,負載均衡,均衡策略,如何配置,如何最佳化等等?
總之,nginx之所以高效,是因為底層模型很高效,打算改天詳細說下epoll模型,用來應付面試還是極好的,敬請關注。。
回覆列表
你好,你現在應該就最快入手找份工作。首先你得學會一個J2EE伺服器,tomcat+(Nginx或httpd等web服務)會下載,可以啟動還知道檔案在什麼地方。然後學一個框架,現在是SSM,你就看spring MVC,因為所有的mvc框架都差不多,只要堅持你瞭解MVC其他的都問題不大,可以借鑑。H和M你沒專案經驗只需瞭解下,看下資料就好了。資料庫也別整些花裡胡哨的東西,就實用的mysql就行。你要學T-SQL懂增刪改查,稍微瞭解下sql效率方面的問題。