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

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


    網站導航:
     
    主站蜘蛛池模板: 男女猛烈激情xx00免费视频| 伊人久久亚洲综合影院首页| 一级做a爱片特黄在线观看免费看| 久久久久国色AV免费看图片| 亚洲成人免费在线观看| 亚洲人成免费电影| 亚洲男人的天堂久久精品| 91视频国产免费| 一本色道久久综合亚洲精品蜜桃冫| 精品国产污污免费网站aⅴ| 亚洲av乱码一区二区三区香蕉| xx视频在线永久免费观看| 亚洲日本久久一区二区va| 国内自产少妇自拍区免费| 国产精品亚洲二区在线| 亚洲一本大道无码av天堂| 中文字幕免费在线看电影大全| 亚洲春色在线视频| 国产香蕉免费精品视频| 亚洲欧美日韩中文二区| 国产a不卡片精品免费观看| 成人在线免费视频| 亚洲AV永久青草无码精品| 99久久99这里只有免费费精品| 亚洲a∨无码一区二区| 亚洲欧洲自拍拍偷精品 美利坚| 日韩av无码免费播放| 亚洲三级在线视频| 免费在线不卡视频| 可以免费观看的毛片| 亚洲最大的成人网| 色噜噜亚洲精品中文字幕| 精品国产污污免费网站aⅴ| 老司机亚洲精品影院在线观看| 亚洲色成人WWW永久网站| 4hu四虎最新免费地址| 国产亚洲精品美女久久久久| 国产亚洲精品观看91在线| 欧美大尺寸SUV免费| 中文字幕免费观看视频| 亚洲男人的天堂久久精品|