<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    放翁(文初)的一畝三分地

      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
      210 隨筆 :: 1 文章 :: 320 評論 :: 0 Trackbacks
    Jetty內部只有一個線程池負責NIO事件,業務事件的執行,因此在做壓力測試的時候,如何簡單知道當前這個線程池運行狀態對于系統調優來說很重要,其實Jetty主框架是配置代替編碼的模式,因此你只需要配置一下,就可以獲得Jetty內部任何數據。
    先看看配置:
    當前丟在了jetty-deploy.xml中,其實完全可以自己去寫一個xml分離開來:

    <Configure id="Server" class="org.eclipse.jetty.server.Server">

        <!-- =========================================================== -->
        <!-- Configure the deployment manager                            -->
        <!--                                                             -->
        <!-- Sets up 2 monitored dir app providers that are configured   -->
        <!-- to behave in a similaraly to the legacy ContextDeployer     -->
        <!-- and WebAppDeployer from previous versions of Jetty.         -->
        <!-- =========================================================== -->
        <Call name="addBean">
         <Arg>
          <New class="com.taobao.top.xbox.util.JettyThreadPoolInspector">
           <Set name="server">
                <Ref id="Server" />
              </Set>
              <Set name="interval">5</Set>
          </New>
         </Arg>
        </Call>


    ......
    </Configure>

    看看下面這段簡單的代碼,就知道如何輸出jetty內部的線程了:

    /**
     * @author fangweng
     * @email fangweng@taobao.com
     * @date 2011-6-22
     *
     */
    public class JettyThreadPoolInspector implements LifeCycle,Runnable{
     
     private static final Log logger = LogFactory.getLog(JettyThreadPoolInspector.class);
     
     Server server;
     int interval = 10 * 60;//每隔多少時間輸出隊列信息
     Thread innerThread;
     boolean flag = true;

     public int getInterval() {
      return interval;
     }

     public void setInterval(int interval) {
      this.interval = interval;
     }

     public Server getServer() {
      return server;
     }

     public void setServer(Server server) {
      this.server = server;
     }
     
     public void run()
     {
      while(flag)
      {
       try
       {
        logger.warn(new StringBuilder().append("Jetty Thread Pool: ").
          append(server.getThreadPool().toString()).toString());
        
        Thread.sleep(interval * 1000);
       }
       catch(Exception ex)
       {
        logger.error(ex);
       }
      }
     }

     @Override
     public void start() throws Exception {
      
      innerThread = new Thread(this,"JettyThreadPoolInspector-thread");
      innerThread.start(); 
     }

     @Override
     public void stop() throws Exception {
      this.flag = false;
      innerThread.interrupt();
     }


    ......

    至此為止,其實想說明的就是Jetty內部透明很容易做到,隨意可植入,如果不喜歡循環輸出,都可以實現監聽kill -3的模式來dump出關心的信息。
    posted on 2011-06-22 17:03 岑文初 閱讀(4006) 評論(0)  編輯  收藏

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 色www永久免费视频| 真实乱视频国产免费观看| 亚洲伊人成无码综合网 | 成年女人永久免费观看片| 亚洲成a人片在线观看中文app| 中文字幕视频免费在线观看| 亚洲午夜av影院| 国产免费福利体检区久久| 久久久无码精品亚洲日韩软件| 一级特黄a大片免费| 国产亚洲成归v人片在线观看| 你好老叔电影观看免费| 亚洲国产精华液网站w| 久久久久成人片免费观看蜜芽| 亚洲专区在线视频| 在线观看日本免费a∨视频| 亚洲啪AV永久无码精品放毛片| 无码国模国产在线观看免费| 视频免费1区二区三区| 亚洲综合av永久无码精品一区二区| 最近的2019免费中文字幕| 亚洲AV无码成人精品区在线观看 | 久久九九兔免费精品6| 亚洲乱码一二三四区国产| 免费鲁丝片一级观看| 日韩免费码中文在线观看| 亚洲人成网77777亚洲色 | 韩国欧洲一级毛片免费| 曰批全过程免费视频免费看| 国产亚洲av片在线观看18女人 | 老子影院午夜伦不卡亚洲| 久久久久亚洲AV综合波多野结衣| 日韩免费视频一区二区| 亚洲 欧洲 视频 伦小说| 亚洲av午夜精品一区二区三区| 热久久这里是精品6免费观看| 亚洲日本乱码一区二区在线二产线| 成人黄动漫画免费网站视频 | 亚洲男人的天堂www| 67194熟妇在线永久免费观看| 美女视频黄a视频全免费网站色|