<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 岑文初 閱讀(4005) 評論(0)  編輯  收藏

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


    網站導航:
     
    主站蜘蛛池模板: 亚洲午夜无码久久| 色婷婷六月亚洲综合香蕉| 人禽杂交18禁网站免费| 高潮毛片无遮挡高清免费视频 | 亚洲av中文无码乱人伦在线咪咕| 男女免费观看在线爽爽爽视频| 韩国亚洲伊人久久综合影院| 亚洲专区在线视频| 免费国产在线观看不卡| 国产成人一区二区三区视频免费| 久久精品亚洲日本波多野结衣| 亚洲成AV人片天堂网无码| 好吊妞在线成人免费| 免费国产在线视频| 国产天堂亚洲精品| 亚洲国产精品午夜电影| 337p日本欧洲亚洲大胆裸体艺术| 成人影片麻豆国产影片免费观看 | 亚洲最大福利视频| 国产精品亚洲片在线| 国产又黄又爽又刺激的免费网址| 99在线视频免费| 国产免费牲交视频免费播放| 亚洲AV无码一区二区一二区| 亚洲精品免费在线观看| 亚洲熟伦熟女新五十路熟妇 | 国产精品免费看香蕉| 免费看黄视频网站| 香蕉免费一区二区三区| 一区二区三区免费高清视频| 久久电影网午夜鲁丝片免费| 精品熟女少妇a∨免费久久| 久久国产精品免费| 鲁啊鲁在线视频免费播放| 99久久国产亚洲综合精品| 91精品国产亚洲爽啪在线观看| 亚洲色中文字幕无码AV| 亚洲无码日韩精品第一页| 免费人成在线观看网站视频| 成人黄页网站免费观看大全| 又大又硬又爽又粗又快的视频免费 |