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

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


    網站導航:
     
    主站蜘蛛池模板: 亚洲依依成人精品| 成人毛片手机版免费看| 无码国产精品一区二区免费式直播 | 国产亚洲女在线线精品| 久久国产乱子伦精品免费强| 精品无码免费专区毛片| 成人免费男女视频网站慢动作| 免费鲁丝片一级观看| 亚洲色图在线播放| 另类专区另类专区亚洲| 午夜免费1000部| 亚洲中文字幕无码专区| 亚洲国产成人久久综合一区| 黄色网址免费在线| 无码一区二区三区AV免费| 激情97综合亚洲色婷婷五| 亚洲色大情网站www| 9420免费高清在线视频| 不卡精品国产_亚洲人成在线| 久久精品国产亚洲av麻豆蜜芽| 亚欧日韩毛片在线看免费网站| 亚洲成人一区二区| 特级aa**毛片免费观看| 日韩在线天堂免费观看| 久久精品国产亚洲AV久| 国产成人yy免费视频| 亚洲第一页在线观看| 免费专区丝袜脚调教视频| 久久精品国产亚洲av麻豆色欲| 中国一级特黄的片子免费| 国产亚洲一区二区三区在线观看| 高潮毛片无遮挡高清免费视频| 免费鲁丝片一级在线观看| 日韩精品亚洲专区在线影视| 免费jjzz在线播放国产| 无码精品人妻一区二区三区免费| 免费国产在线观看| 永久免费无码网站在线观看个| 亚洲精品一级无码鲁丝片| 久久久精品视频免费观看| 亚洲精品无码成人AAA片|