<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)  編輯  收藏

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


    網站導航:
     
    主站蜘蛛池模板: 国产免费观看视频| 免费观看的a级毛片的网站| 亚洲精品国产综合久久一线| 精品亚洲国产成人av| 色视频色露露永久免费观看| 亚洲人成无码网站在线观看| 思思99re66在线精品免费观看| 精品国产成人亚洲午夜福利| 精品国产免费观看一区| 亚洲精品无码永久在线观看男男 | 成人免费无遮挡无码黄漫视频| 亚洲人成电影在线观看网| 最近免费中文字幕mv在线电影| 亚洲精品福利在线观看| 免费v片在线观看视频网站| 亚洲精品福利你懂| 浮力影院第一页小视频国产在线观看免费 | 亚洲精品乱码久久久久久按摩| 中文字幕免费在线看电影大全| 亚洲阿v天堂在线| 最好看最新的中文字幕免费| 亚洲午夜精品在线| 日韩免费无砖专区2020狼| 一本一道dvd在线观看免费视频 | 亚洲日本成本人观看| 日本中文一区二区三区亚洲| 三年片在线观看免费| 亚洲无吗在线视频| 亚洲国产成人五月综合网 | 久久精品国产亚洲av麻豆色欲| 国产成人免费爽爽爽视频| 人人狠狠综合久久亚洲| 亚洲午夜福利AV一区二区无码| 4455永久在线观免费看| 精品久久久久久亚洲中文字幕| 国产精品亚洲A∨天堂不卡| 91成人免费观看| 污污视频网站免费观看| 久久精品国产亚洲AV大全| 国产一级特黄高清免费大片| 麻豆精品成人免费国产片|