国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Tomcat安裝、配置、優(yōu)化及負(fù)載均衡詳解

caikeal / 622人閱讀

摘要:已成為目前開發(fā)企業(yè)應(yīng)用的最佳容器選擇之一。到安裝目錄文件中查找元素。

一、常見JavaWeb服務(wù)器

 1、WebLogic:是BEA公司的產(chǎn)品、WebSphereAS:是IBM公司的產(chǎn)品、JBossAS:紅帽公司的產(chǎn)品,可以自行了解
 2、Tomcat服務(wù)器: 
       Sun公司在推出的小型Servlet/JSP調(diào)試工具的基礎(chǔ)上發(fā)展起來的一個優(yōu)秀的Servlet容器,Tomcat本身完全用java語言編寫,所以tomcat的運(yùn)行需要java的支持,所以要先安裝JDK,才能運(yùn)行。目前是Apache開源軟件組織的一個軟件項(xiàng)目,它的官網(wǎng)http://tomcat.apache.org。得到了廣大開源代碼志愿者的大力支持,且可以和目前大部分的主流Web服務(wù)器(IIS、Apache服務(wù)器)一起工作,它運(yùn)行穩(wěn)定、可靠且高效。已成為目前開發(fā)企業(yè)JavaWeb應(yīng)用的最佳Servlet容器選擇之一。目前最新版本8.0

二、Tomcat的目錄結(jié)構(gòu)及常用配置

1、Tomcat的目錄層次結(jié)構(gòu)
     bin:   存放啟動和關(guān)閉Tomcat的腳本文件
     conf: 存放Tomcat服務(wù)器的各種配置文件
     lib:   存放tomcat服務(wù)器支撐的jar包
     logs:  存放Tomcat的日志文件
     temp:  存放Tomcat運(yùn)行時產(chǎn)生的臨時文件
     webapps:web應(yīng)用雖在目錄,即供外界訪問的web資源的存放目錄
     work:  Tomcat的工作目錄
2、JavaWeb應(yīng)用的組成結(jié)構(gòu)
     mail---------------------------Web應(yīng)用所在目錄
       |----html、jsp、css、js等文件,根目錄下的文件外界可以直接訪問
       |----WEB-INF目錄
                |---------classes目錄(java類)
                |---------lib目錄(java類運(yùn)行所需的jar包)
                |---------web.xml(web應(yīng)用的配置文件)
         WEB-INF 這個目錄下的文件外界無法直接訪問,由web服務(wù)器負(fù)責(zé)調(diào)用
 3、JavaWeb應(yīng)用的發(fā)布
        開放式目錄方式:
        打包war方式:   使用   Jar -cvf *.war .
 4、Tomcat的組成結(jié)構(gòu)
        Tomcat本身由一系列可配置的組件構(gòu)成,其中核心組件是Servlet容器組件,它是所有其他Tomcat組件的頂層容器。每個組件都可以在Tomcat安裝目錄/conf/server.xml文件中進(jìn)行配置,每個Tomcat組件在server.xml文件中對應(yīng)一種配置元素。下面用XML的形式展示各種Tomcat組件之間的關(guān)系    

代表整個Servlet容器組件,是最頂層元素,可以包含一個或多個元素

    包含一個元素以及一個或多個元素,這些共享一個
        代表和客戶程序?qū)嶋H交互的組件,負(fù)責(zé)接收客戶請求,以及向客戶返回響應(yīng)
        每個元素只能包含一個元素,它處理在同一個中所有接收到的客戶請求
                  在一個中可以包含多個,它代表一個虛擬主機(jī)(即一個服務(wù)器程序可以部署在多個有不同IP的服務(wù)器主機(jī)上),它可以包含一個或多個應(yīng)用
                          使用最頻繁的元素,代表了運(yùn)行在虛擬主機(jī)上的單個web應(yīng)用
                 
       
  

   5、Tomcat體系結(jié)構(gòu)
      

    6、虛擬目錄的映射方式
      從Tomcat6開始,Tomcat支持自動映射,即tomcat服務(wù)器會自動管理webapps目錄下的所有web應(yīng)用,并把它映射成虛擬目錄,換句話說,只需把web應(yīng)用放在webapps目錄下,不需要配置Context,外界可以直接訪問
      但是如果你不想講項(xiàng)目放在webapps下,而是放在其他地方,還是需要配置Context,比如我的tomcat在C盤,我的項(xiàng)目在D盤,則需要在Host下增加如下虛擬目錄映射語句

    7、Context元素配置
      tomcat在加載一個web應(yīng)用時,會一次按照以下五種方式查找web應(yīng)用中的元素,優(yōu)先級一次降低,直到找到為止
      1):到Tomcat安裝目錄/conf/Context.xml文件中查找元素。
      2):到Tomcat安裝目錄/conf/[enginename]/[hostname]/context.xml.default文件中查找元素。
           [enginename]:表示的name屬性
           [hostname]:表示d的那么屬性
      3):到Tomcat安裝目錄/conf/[enginename]/[hostname]/[contextpath].xml文件中查找元素
            [contextpath]:表示單個Web應(yīng)用的URL入口
      4):到Web應(yīng)用的META-INF/context.xml文件中查找元素
      5):到Tomcat安裝目錄/conf/server.xml文件中查找元素。只適用于單個Web應(yīng)用
    8、將項(xiàng)目部署為Tomcat默認(rèn)應(yīng)用
         即訪問 http://localhost:8080 時出來的是tomcat自帶的歡迎頁面,改為登錄到自己的項(xiàng)目主頁
           方法一:
                 在Tomcat默認(rèn)安裝后,tomcat的主目錄是webapps/root目錄,所以如果想改變tomcat的主目錄的話可以如下所做:
                 在/conf/server.xml文件的之間加入代碼


           方法二:
               將tomcat安裝目錄下的ROOT下的所有文件刪除,換成自己項(xiàng)目的文件,此法有點(diǎn)暴力
           方法三:
               Tomcat5.0以下版本在C:/Tomcat/conf/Catalina/localhost目錄下會自動生成了一個ROOT.Xml,但是5.0以上版本不再生成此文件,所以可以新建個ROOT.xml,在里面加入如下代碼:




      9、Context元素的屬性
           path:    指定訪問該Web應(yīng)用的URL入口
           docBase: 指定Web應(yīng)用的文件路徑,可以寫絕對路徑,也可以寫相對于appBase屬性的相對路徑
           className:指定實(shí)現(xiàn)Context組件的Java類的名字,這個類必須實(shí)現(xiàn)org.apache.catalina.Contex接口,該屬性默認(rèn)值為org.apache.catalina.core.StandardContext(不建議大家改動)
           reloadable:如果為true,Tomcat服務(wù)器在運(yùn)行狀態(tài)下回監(jiān)視在WEB-INF/classes和WEB-INF/lib目錄下的class文件的改動,以及監(jiān)視Web應(yīng)用的WEB-INF/web.xml文件的改動,如果檢測到有更新,服務(wù)器會自動更新加載web應(yīng)用。其默認(rèn)值為false。在開發(fā)和調(diào)試階段,將其改為true,一般像Eclipse等開發(fā)環(huán)境都會默認(rèn)改為true。在正式發(fā)布階段,應(yīng)將其該為false,可以降低Tomcat的運(yùn)行負(fù)荷,提高Tomcat的運(yùn)行性能
           在一般情況下,元素都會使用默認(rèn)的標(biāo)準(zhǔn)Context組件,即className屬性采用默認(rèn)值org.apache.catalina.core.StandardContext,它除了擁有上面介紹到的屬性外,還有自身專有的屬性:
           cachingAllowed:是否允許啟用靜態(tài)資源(HTML、圖片、聲音等)的緩存。默認(rèn)值為true。
           cacheMaxSize:設(shè)置靜態(tài)資源緩存的最大值,單位為K。
           workDir:指定Web應(yīng)用的工作目錄。
           uppackWAR:如果為true,會把war文件展開為開放目錄后再運(yùn)行。為false,直接運(yùn)行war文件。默認(rèn)值為true。
    10、web.xml文件
         該文件必須放在/WEB-INF目錄下,但是從7.0版本開始,Tomcat可以不使用web.xml文件,而是使用注解方式。

三、Tomcat的優(yōu)化

    1、內(nèi)存使用配置
       Tomcat是依賴于JVM的,所以Tomcat的使用內(nèi)存配置實(shí)質(zhì)上是JVM的內(nèi)存配置
       在/bin目錄下的catalina.bat可以直接通過Tomcat設(shè)置JVM內(nèi)存參數(shù),windows下
       打開catalina.bat文件,在大概中間的位置,找到
       set "JAVA_OPTS=%JAVA_OPT% -server -Xms2048m -Xmx2048m -XX:PermSize=256m -XX:MaxPermSize=512m -Djava.awt.headless=true"
       通過內(nèi)存設(shè)置充分利用服務(wù)器內(nèi)存
       -server:   模式啟動應(yīng)用慢,但是極大程度提高運(yùn)行性能
       -Xms2048m -Xmx2048m:   設(shè)置的是堆內(nèi)存
       java8開始,PermSize被MetaspaceSize代替,MetaspaceSize共享heap,不會再有java.lang.OutOfMemoryError:PermGen space,可以不設(shè)置
       Headless=true:   適用于Linux系統(tǒng),與圖形操作有關(guān),如生成驗(yàn)證碼含義是當(dāng)前的是無顯示器的服務(wù)器,應(yīng)用中如果獲取系統(tǒng)顯示有關(guān)的參數(shù)會拋出異常,windows系統(tǒng)可不用設(shè)置
       可通過jmap -heap process_id查看設(shè)置是否成功

     2、最大連接數(shù)配置(并發(fā)能力)
        在/conf/server.xml里進(jìn)行配置
        在屬性中
        將protocol屬性改為 "org.apache.coyote.http11.Http11NioProtocol",NIO模型的效率更高
        加入
            maxThreads="500" //當(dāng)前可以同時處理的最大用戶訪問數(shù)
            minSpareThreads="100" //最小空閑線程連接數(shù),用于優(yōu)化線程池
            maxSpareThreads="200"
            acceptCount="200" //當(dāng)所有的線程以分配,仍然允許連接進(jìn)來,但是出于等待狀態(tài)的用戶數(shù)。等待線程數(shù)+工作線程數(shù)=總的可最大連接數(shù),如果超過此數(shù),新的連接將不會被接受,就會產(chǎn)生一個http錯誤
            enableLookups="false"http://是否允許DNS反查,如果為true,request.getRemoteHost會執(zhí)行DNS查找,反向解析ip對應(yīng)域名或主機(jī)名,當(dāng)沒有這樣需要的時候,可以將這個功能關(guān)閉,在一定程度上提高了Tomcat服務(wù)器的性能

四、負(fù)載均衡配置

   負(fù)載均衡是提高應(yīng)用負(fù)載量和容錯的有效手段,可以結(jié)合Nginxs與Tomcat實(shí)現(xiàn),Nginx是一款性能優(yōu)異的反向代理服務(wù)器
   1、負(fù)載均衡配置實(shí)現(xiàn)
         反向代理原理示意圖:
         

          負(fù)載均衡示意圖:
          

          負(fù)載均衡策略:
             Nginx 提供輪詢(round robin)、用戶IP哈希(client IP)和指定權(quán)重 3 種方式

   2、負(fù)載均衡時Session的處理策略
          Session是Tomcat服務(wù)器上的內(nèi)存空間,如果一個用戶發(fā)出多個請求,卻發(fā)到了多個tomcat服務(wù)器中,那么就會出現(xiàn)Session不同步的問題
          解決方案1:將一個用戶的請求鎖定到某一臺服務(wù)器上,簡單,但是缺乏容錯性,一旦某個服務(wù)器發(fā)生故障,Session可能丟失,(但是服務(wù)器發(fā)生故障是一個低概率事件,如果一個服務(wù)器經(jīng)常掛掉,要么是硬件有問題,要么是應(yīng)用有問題)
                    可以使用用戶IP哈希實(shí)現(xiàn)
        解決方案2:Session復(fù)制策略,基于網(wǎng)絡(luò)的廣播策略,一個節(jié)點(diǎn)Session變化,其他節(jié)點(diǎn)同步復(fù)制,具有容錯性,但節(jié)點(diǎn)多或復(fù)制量大時對網(wǎng)絡(luò)負(fù)荷大,使網(wǎng)絡(luò)效率低下,甚至阻塞
                 ① 在/conf/server.xml文件中開啟Session復(fù)制的選項(xiàng),將注釋去掉,7.0默認(rèn)值以配置好,需要接收器綁定內(nèi)網(wǎng)(一般服務(wù)器都有兩塊網(wǎng)卡)網(wǎng)卡地址,修改端口>。
                 ② 在應(yīng)用中指定應(yīng)用是在分布式部署之下,在web.xml中添加選項(xiàng)
        解決方案3:額外創(chuàng)建一個共享的空間用來存放Session,所有服務(wù)器共享一個Session
                    memcached緩存共享方案基本原理
                    粘性Session與非粘性Session方式:
                    


                       需要一些工具jar包,官網(wǎng)有目錄和下載連接
                       在/conf/context.xml中進(jìn)行配置,全局有效
   3、集群環(huán)境中應(yīng)用代碼應(yīng)注意的問題
            ① 傳遞Session需要實(shí)體類序列化支持,實(shí)現(xiàn)可序列化接口,設(shè)置版本號
          ② 獲取用戶IP地址方法的變化,獲取真實(shí)客戶端ip而不是Nginx代理地址
            ③ 動靜分離結(jié)構(gòu)的預(yù)規(guī)劃,
               一般高并發(fā)的網(wǎng)站上,資源類的文件,如js,css,圖片通常是由靜態(tài)服務(wù)器處理,Nginx處理靜態(tài)文件效率就非常高,而tomcat處理靜態(tài)文件是它很大的一個弱勢,tomcat只負(fù)責(zé)動態(tài)請求的處理。那么編碼的時候就要考慮靜態(tài)資源最后可能要被拿出去,地址會有變化,所以在開發(fā)的時候應(yīng)該規(guī)劃訪問地址,保持最大靈活性。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/76153.html

相關(guān)文章

  • 后臺開發(fā)常問面試題集錦(問題搬運(yùn)工,附鏈接)

    摘要:基礎(chǔ)問題的的性能及原理之區(qū)別詳解備忘筆記深入理解流水線抽象關(guān)鍵字修飾符知識點(diǎn)總結(jié)必看篇中的關(guān)鍵字解析回調(diào)機(jī)制解讀抽象類與三大特征時間和時間戳的相互轉(zhuǎn)換為什么要使用內(nèi)部類對象鎖和類鎖的區(qū)別,,優(yōu)缺點(diǎn)及比較提高篇八詳解內(nèi)部類單例模式和 Java基礎(chǔ)問題 String的+的性能及原理 java之yield(),sleep(),wait()區(qū)別詳解-備忘筆記 深入理解Java Stream流水...

    spacewander 評論0 收藏0
  • 后臺開發(fā)常問面試題集錦(問題搬運(yùn)工,附鏈接)

    摘要:基礎(chǔ)問題的的性能及原理之區(qū)別詳解備忘筆記深入理解流水線抽象關(guān)鍵字修飾符知識點(diǎn)總結(jié)必看篇中的關(guān)鍵字解析回調(diào)機(jī)制解讀抽象類與三大特征時間和時間戳的相互轉(zhuǎn)換為什么要使用內(nèi)部類對象鎖和類鎖的區(qū)別,,優(yōu)缺點(diǎn)及比較提高篇八詳解內(nèi)部類單例模式和 Java基礎(chǔ)問題 String的+的性能及原理 java之yield(),sleep(),wait()區(qū)別詳解-備忘筆記 深入理解Java Stream流水...

    xfee 評論0 收藏0
  • 后臺開發(fā)常問面試題集錦(問題搬運(yùn)工,附鏈接)

    摘要:基礎(chǔ)問題的的性能及原理之區(qū)別詳解備忘筆記深入理解流水線抽象關(guān)鍵字修飾符知識點(diǎn)總結(jié)必看篇中的關(guān)鍵字解析回調(diào)機(jī)制解讀抽象類與三大特征時間和時間戳的相互轉(zhuǎn)換為什么要使用內(nèi)部類對象鎖和類鎖的區(qū)別,,優(yōu)缺點(diǎn)及比較提高篇八詳解內(nèi)部類單例模式和 Java基礎(chǔ)問題 String的+的性能及原理 java之yield(),sleep(),wait()區(qū)別詳解-備忘筆記 深入理解Java Stream流水...

    makeFoxPlay 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<