实时应用监控平台cat——服务器启动流程(一)

通过此介绍:http://www.oschina.net/p/cat-dianping

得知,运行cat-home项目里的‘com.dianping.cat.TestServer’可以启动CAT服务。so,我们就通过这个类来分析一下cat服务端的启动流程。

准备工作:需要把cat的代码导入IDE(我这里用的是eclipse),下载依赖(吐槽一下,太慢了),编译成功;

好,接着我们断点TestServer类跟踪整个启动流程。

----------------------------------------------分割线------------------------------------------------------

直接上TsetServer代码:

  1. /**
  2.  * Junit4最大的改进是大量使用注解(元数据),很多实际执行过程都在Junit的后台做完了,
  3.  * 而且写test case 的类不需要继承TestCase,只需要在所要做test case的方法前加@Test 注解即可。
  4.  * @author admin
  5.  */
  6. @RunWith(JUnit4.class)//测试运行于JUnit4测试环境
  7. public class TestServer extends JettyServer {
  8.  public static void main(String[] args) throws Exception {
  9.   TestServer server = new TestServer();
  10.   System.setProperty("devMode", "true");//设置指定键对值的系统属性:开发模式(true)
  11.   server.startServer();//开启一个jetty服务
  12.   server.startWebApp();//在默认浏览器中打开一个页面
  13.   server.stopServer();//停止一个jetty服务
  14.  }
  15.  
  16.  /**
  17.   * @Before, @After注解过的方法将在测试方法之前/之后执行。
  18.   * @throws Exception
  19.   */
  20.  @Before
  21.  public void before() throws Exception {
  22.   System.setProperty("devMode", "true");
  23.   super.startServer();
  24.  }
  25.  
  26.  @Override
  27.  protected String getContextPath() {
  28.   return "/cat";
  29.  }
  30.  
  31.  /**
  32.   * 得到服务器端口
  33.   */
  34.  @Override
  35.  protected int getServerPort() {
  36.   return 2281;
  37.  }
  38.  
  39.  @Override
  40.  protected void postConfigure(WebAppContext context) {
  41.   context.addFilter(GzipFilter.class, "/*", Handler.ALL);
  42.  }
  43.  
  44.  @Test
  45.  public void startWebApp() throws Exception {
  46.   // open the page in the default browser
  47.   // 在系统默认浏览器中打开一个页面,这个地方要注意一下,因为调用的是默认浏览器,而cat的对于别的浏览器页面不兼容,建议把默认浏览器设置为chrome
  48.   display("/cat/r");
  49.   waitForAnyKey();
  50.  }
  51. }

 

从上面的代码可以看出重点在main方法,从中基本可以看出整个服务器的启动过程如下:

1,因为cat项目在开发模式下集成了jetty,所以第一步就是启动一个jetty服务(server.startServer();//开启一个jetty服务);

2,调用本地操作系统的默认浏览器打开一个页面(server.startWebApp();//在默认浏览器中打开一个页面);

3,停止服务(server.stopServer();//停止一个jetty服务);

 

所以,cat服务的启动过程可以通过以上三个过程步骤进行分析,接下来我们看看cat在startServer的时候都干了一些什么,而startServer整个过程又分为如下步骤:

JettyServer


此类的代码点评封装在了一个jar里面(test-framework-2.2.0.jar)

1,安装Plexus IOC容器setupContainer()(没有接触过plexus ioc的请查看:http://blog.csdn.net/songhuiqiao/article/details/49908165

     Plexus提供完整的软件栈,用于

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值